我想获取限制视频列表的缩略图网址。
我使用vimeo创建了一个应用程序,并获得了一个访问令牌。
如何使用此访问令牌获取对该方法的访问权限?当我尝试这个时:
videos = Vimeo::Advanced::Video.new("client_identifier", "client_secret",
:token => "access_token")
videos.get_thumbnail_urls(the_video_id)
我得到了
Vimeo::Advanced::RequestFailed: 401: Permission Denied, explanation: The oauth_token passed was either not valid or has expired.
我的用户没有vimeo帐户,因此我没有看到他们使用vimeo进行身份验证的重点(或方法)。我想获取由创建应用程序的同一帐户上传的视频缩略图。我的理解是我生成的访问令牌应该提供这种访问。
我错过了什么?
更新:基于已接受的答案,以下是对我有用的内容
require 'httparty'
video_id = "123456789" # substitute with the desired video ID
api_url = "https://api.vimeo.com/videos/#{video_id}/"
auth = "Bearer access_token_generated_by_vimeo" # use your access token
r = HTTParty.get api_url, headers: { "Authorization" => auth, "Accept" => "application/vnd.vimeo.*+json;version=3.2" } # make sure to use the proper Accept header as recommended in the API docs
v = JSON.parse(r)
v["pictures"]["sizes"][1]["link"]
答案 0 :(得分:3)
Advanced API是Vimeo的旧API。这已被弃用,许多库仍然只能使用这个旧的API。
幸运的是,新的API非常简单,你真的不需要一个库。特别是如果你想要的只是缩略图访问。
<强>验证强>
在dev site上查看单用户与多用户应用程序的文档。由于您的用户没有vimeo帐户,因此您应该遵循单个用户帐户的说明(基本上是对单个访问令牌进行硬编码。您可以在“身份验证”标签下的应用页面上生成此令牌“。
API请求
新API使用更清晰的身份验证和请求结构。缩略图与所有视频回复一起提供。其中包括https://api.vimeo.com/videos/{video_id},https://api.vimeo.com/me/videos,https://api.vimeo.com/channels/{channel_id}/videos等。
Vimeo建议您在标题中包含您的访问令牌(授权:bearer {token}),但系统允许您通过URL(?access_token = {token})提供它。
最终请求可能看起来像
GET https://api.vimeo.com/me/videos
Authorization: bearer abcd1234
<强>红宝石强>
不幸的是我不熟悉ruby,所以我无法帮助将其转换为ruby,但是可能有一个很棒的HTTP库可以帮助你。
答案 1 :(得分:0)
这对于我在经过多次实验后从查询字符串中获取视频ID非常有用(感谢上述所有海报)。
escaped_title = CGI::escape(title)
api_url = "https://api.vimeo.com/videos?query=#{escaped_title}&sort=relevant&access_token=#{@access_token}"
vimeo_response = JSON.parse(HTTParty.get api_url)
vimeo_id = vimeo_response["data"][0]["uri"]