upload.approach“pull”请求返回成功消息,但内容无效

问题描述 投票:0回答:1

目前还没有适用于Coldfusion的官方Vimeo API SDK,所以我根据官方的PHP代码编写了一个。最后,我们只对Vimeo收到请求时看到的JSON字符串感兴趣,对吧?我正在尝试执行PULL方法,并且在运行脚本时收到视频ID,链接,“处理”状态等。该视频在我的帐户中显示为“待处理”。这是我的请求的JSON内容:标题:

POST https://api.vimeo.com/me/videos
{ 
  "Content_Type": "application/json",
  "Authorization": "Bearer 7b8686f6d7cb....65990",
  "Accept": "application/vnd.vimeo.*+json; version=3.4"
}

身体:

{
  "upload": {
    "approach":"pull",
    "size":30003213,
    "link":"https://mysite.me/api/index.cfm/video?PK=Na6z6ZZMQ&SI=45rtt4423"},
    "name":"Employee1.mp4"
  }
}

我从Vimeo收到的回复包括以下数据(显然这不是整个回复):

{
  "Statuscode": "201 Created",
  "Filecontent": {
    "uri":"/videos/3...393",
    "name":"Untitled",
    "description":null,
    "link":"https://vimeo.com/3...393"
  },
  "app":{
    "name":"My Vimeo App Name",
    "uri":"/apps/14...6"
  },
  "status":"uploading",
  "resource_key":"0b83....d49dc",
  "upload":{
    "status":"in_progress",
    "complete_uri":null,
    "approach":"post",
    "size":null, 
    "redirect_url":null,
    "link":null
  },
  "transcode":{"status":"in_progress"}
}

我似乎无法让Vimeo将此识别为“拉”方法,也无法识别文件名,大小等。看来请求成功,但Vimeo上“我的视频”中的视频从未完成上传或转码,没有名称,不尊重我的隐私或其他选项的设置,似乎是某种处理错误。

我很乐意与任何有经验的人分享一些ColdFusion代码,但我觉得问题可能在于编译的JSON而不是ColdFusion。

vimeo vimeo-api
1个回答
0
投票

解决方案:通过ColdFusion发送请求时,而不是像这样发送JSON内容:

<cfhttpparam type="body" value="{"upload":{"approach":"pull","size":30003213,"link":"https://example.com/api/index.cfm/video?PK=Na6z6Zp4ca&CK=4EP56DM566&SI=6868"},"name":"EmployeeProfile.mp4"}" />

参数应该像这样发送:

<cfhttpparam type="formField" encoded="false" name="upload.approach" value="pull" />
<cfhttpparam type="formField" encoded="false" name="upload.size" value="30003213" />
<cfhttpparam type="formField" encoded="false" name="upload.link" value="https://example.com/api/index.cfm/video?PK=Na6z6Zp4ca&CK=4EP56DM566&SI=6868" />

不确定原因,但是当您从ColdFusion向Vimeo发送POST请求时,Vimeo无法识别cfhttpparam的任何JSON主体。您必须使用type =“formField”。

© www.soinside.com 2019 - 2024. All rights reserved.