Как решить, что переданная oauth_signature была недействительной при загрузке видео с помощью vimeo gem? - PullRequest
3 голосов
/ 18 марта 2012

Я потратил несколько часов, пытаясь выяснить, как получить все учетные данные, необходимые для обновления моих собственных видео на Vimeo, используя vimeo gem .Я понимаю, что должен вручную авторизовать собственное приложение для своей учетной записи.Я следовал инструкциям в readme :

base = Vimeo::Advanced::Base.new(App.vimeo[:consumer_key], App.vimeo[:consumer_secret])
request_token = base.get_request_token

Затем я захожу на base.authorize_url и вижу Allow "App" to access your Vimeo account?.Я нажимаю «Разрешить» и вижу код, который выглядит как unicorn-weipo.Я предполагаю, что это oauth_verifier.Vimeo не отправляет мне URL, указанный в настройках приложения.Также я не вижу ничего на этой странице, что говорит мне, что мой oauth_token.Итак, я думаю, что мой oauth_token - это request_token token.Я пытаюсь это сделать:

base = Vimeo::Advanced::Base.new(App.vimeo[:consumer_key], App.vimeo[:consumer_secret])
access_token = base.get_access_token(request_token.token, request_token.secret, 'unicorn-weipo')

Пока все хорошо.Итак, давайте сохраним токен и секрет access_token:

user_token = access_token.token
user_secret = access_token.secret

Давайте сначала сделаем что-нибудь простое и перечислим все видео (кстати, в readme написано get_videos, но, похоже, get_allсейчас):

video = Vimeo::Advanced::Video.new(App.vimeo[:consumer_key], App.vimeo[:consumer_secret], :token => user_token, :secret => user_secret)
video.get_all('user10513902')

Ответ выглядит хорошо:

{"generated_in"=>"0.0227", "stat"=>"ok", "videos"=>{"on_this_page"=>"0", "page"=>"1", "perpage"=>"50", "total"=>"0", "video"=>[]}}

Теперь я хочу загрузить что-то:

upload = Vimeo::Advanced::Upload.new(App.vimeo[:consumer_key], App[:consumer_secret], :token => user_token, :secret => user_secret)
f = File.open(File.join(Rails.root, 'spec', 'fixtures', 'sample.avi'))
upload.upload(f)

Но тогда я вижу это:

Vimeo::Advanced::RequestFailed: 303: Invalid signature, explanation: The oauth_signature passed was not valid

Как это исправить?Я хочу иметь возможность загружать видео.

Спасибо!

...