Доступ к Vimeo API через скрипт доступа с использованием драгоценного камня vimeo ruby

Я хочу получить URL-адреса эскизов списка запрещенных видео.

Я создал приложение с помощью 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"]

person aaandre    schedule 26.09.2014    source источник


Ответы (2)


Advanced API - это старый API Vimeo. Это устарело, и многие библиотеки по-прежнему работают только с этим старым API.

К счастью, новый API очень прост и вам не нужна библиотека. В частности, если все, что вам нужно, - это доступ к миниатюрам.

Аутентификация

Ознакомьтесь с документацией для однопользовательских и многопользовательских приложений на сайте разработчиков . Поскольку у ваших пользователей нет учетных записей vimeo, вы должны следовать инструкциям для одной учетной записи (в основном жестко запрограммировать один токен доступа. Вы можете сгенерировать этот токен на странице своего приложения на вкладке «Аутентификация» ».

Запросы API

Новый API использует гораздо более чистую аутентификацию и структуру запросов. Миниатюры предоставляются рядом со всеми видеоответами. Это включает в себя https://developer.vimeo.com/api/playground/videos/%7Bvideo_id%7D, https://developer.vimeo.com/api/playground/me/videos , https://developer.vimeo.com/api/playground/channels/%7Bchannel_id%7D/videos и другие.

Vimeo рекомендует включать токен доступа в заголовок (Authorization: bearer {token}), но система позволяет вам предоставить его через URL-адрес (? Access_token = {token}).

Последний запрос может выглядеть так:

GET https://api.vimeo.com/me/videos
Authorization: bearer abcd1234

Рубин

К сожалению, я не знаком с Ruby, поэтому я не могу помочь с переводом этого в Ruby, но, вероятно, есть отличная HTTP-библиотека, которая может вам помочь.

person Dashron    schedule 26.09.2014
comment
Спасибо большое, это именно то, что мне было нужно. Ruby gem использует старый API, и я запутался между gem docs и vimeo docs. - person aaandre; 26.09.2014
comment
[JsonResultDic SetObject: @ 456a8852ebd72760de4d2206bab3dad0db35a66b forKey: @client_id]; // @ CONSUMER_KEY [jsonResultDic SetObject: @ eb74abb5d1f38ad0bd570d24e4d1d0ee3a447534 forKey: @client_secret]; // @ consumer_secret [jsonResultDic SetObject: @ vimeo.channels.getAll forKey: @method] [jsonResultDic setObject: @bearer a75a63c0e0121b0704a4c98d6e209eb2 forKey: @Authorization]; - person Durgaprasad; 29.12.2014
comment
NSString urlPost = @ vimeo.com/api/rest/v2;ASIHTTPRequest * request1 = [ASIHTTPRequest requestWithURL: [NSURL URLWithString: urlPost]]; NSString str = [jsonResultDic JSONRepresentation]; NSData jsonData = [str dataUsingEncoding: NSUTF8StringEncoding: NSUTF8StringEncoding] [запрос] setURL: [NSURL URLWithString: urlPost]]; [request1 setPostBody: (NSMutableData) jsonData]; [request1 addRequestHeader: значение @Authorization: @bearer a75a63c0e0121b0704a4c98d6e202ebdd6d6d6d6d6d6d6d6d6d6d6d6e02: @requesta260ebd2: @requesta6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ebd6d6d6ebd6d6d6d6d6d6d6ebd6d6ebd2: @requesta2 - person Durgaprasad; 29.12.2014
comment
[request1 addRequestHeader: значение @client_secret: @ eb74abb5d1f38ad0bd570d24e4d1d0ee3a447534]; [request1 setCompletionBlock: ^ {}]; [request1 setFailedBlock: ^ {}]; [request1 startSynchronous]; - person Durgaprasad; 29.12.2014
comment
Привет, вот мой код в ios. Я отправляю токен, но переданный ключ потребителя недействителен - person Durgaprasad; 29.12.2014
comment
vimeo.com/api/rest/v2 - это URL-адрес старого API. URL-адреса, которые я указал в ответе выше, являются правильными URL-адресами (api.vimeo.com) - person Dashron; 31.12.2014
comment
@Dashron У меня такая же проблема здесь с Vimeo API. пожалуйста, помогите мне. - person Hiren Prajapati; 07.07.2016
comment
Какая проблема? Лучше всего связаться с нами по адресу vimeo.com/help/contact. - person Dashron; 13.07.2016

Это то, что помогло мне получить идентификатор видео из строки запроса после долгих экспериментов (спасибо всем вышеперечисленным плакатам).

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"]
person Jonathan_W    schedule 27.01.2015