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

时间:2019-03-13 15:40:44

标签: vimeo vimeo-api

尚无用于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。

1 个答案:

答案 0 :(得分: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向VEMO发送POST请求时,VEMEO无法识别cfhttpparam的任何JSON主体。您必须使用type =“ formField”。