【发布时间】:2015-04-21 19:03:28
【问题描述】:
我正在使用 API 和 Rails 应用程序中的 intridea/oauth2 将视频上传到我的 Vimeo 帐户。
这就是我获取上传票证的方式:
require 'oauth2'
require 'json'
client = OAuth2::Client.new CLIENT_ID, SECRET, site: 'https://api.vimeo.com'
token = OAuth2::AccessToken.new client, TOKEN
response = token.post '/me/videos?redirect_url=https://foobar.com'
body = JSON.parse response.body
puts body['upload_link_secure']
我使用的 API 端点是 documented here。 响应中提供的链接如下所示:
https://1511635511.cloud.vimeo.com/upload?ticket_id=...&redirect_url=https%3A%2F%2Fvimeo.com%2Fupload%2Fapi%3F...
整个过程运行良好,视频已上传,但如您所见,重定向 URL 并未替换为 https://foobar.com。
这意味着我不会将video_id 自动返回到我的应用程序中。
你们知道我做错了什么吗?
干杯
解决方案
正如Austio 解释的那样,POST 的参数是在正文中发送的,而不是在 url 中。
此外,Vimeo API 需要将 type 设置为 POST。下面的 sn-ps 现在可以工作了:
response = token.post '/me/videos', body: { type: 'POST', redirect_url: 'https://foobar.com' }
或者:
response = token.post '/me/videos' do |request|
request.body = { type: 'POST', redirect_url: 'https://foobar.com' }
end
【问题讨论】:
标签: ruby-on-rails vimeo vimeo-api