簡體   English   中英

使用vimeo ruby​​ gem通過訪問腳本訪問Vimeo API

[英]Accessing Vimeo API via access script using the vimeo ruby gem

我想獲取受限視頻列表的縮略圖網址。

我使用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"]

Advanced API是Vimeo的舊API。 不推薦使用此方法,並且許多庫仍然只能使用此舊API。

幸運的是,新的API非常簡單,您實際上不需要庫。 特別是如果您只需要縮略圖訪問權限。

認證

看一下開發站點上的單用戶和多用戶應用程序的文檔。 由於您的用戶沒有vimeo帳戶,因此您應按照單個用戶帳戶的說明進行操作(基本上是對單個訪問令牌進行硬編碼。您可以在“身份驗證”標簽下的應用頁面上生成此令牌)。

API請求

新的API使用更簡潔的身份驗證和請求結構。 所有視頻回復旁邊都提供了縮略圖。 這包括https://api.vimeo.com/videos/{video_id} , https://api.vimeo.com/me/videoshttps://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庫可以為您提供幫助。

經過大量的實驗(這要歸功於上述所有海報),這對我來說是從查詢字符串中獲取視頻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"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM