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