【问题标题】:upload.approach "pull" request returns success message, but the content isn't validupload.approach "pull" 请求返回成功消息,但内容无效
【发布时间】:2019-03-13 15:40:44
【问题描述】:

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】:

    解决方案: 通过 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"。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-06
      • 2018-04-24
      • 2017-08-17
      • 2019-05-22
      • 2017-12-11
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多