2013-10-27 2 views
0

Я пытаюсь написать консольный скрипт для обработки некоторых видеороликов и их автоматической загрузки. Используя мою учетную запись разработчика vimeo, я создал приложение. Каждый раз, когда я загружаюсь, он будет с учетной записью этого пользователя. Я запросил и получил разрешение на загрузку через этот аккаунт.подключение к vimeo с xauth в python

Я предполагаю, что мне нужно подключиться к api через xAuth, так как я не смогу получить строку верификатора oauth из обратного URL-адреса.

У меня есть код python, пытающийся войти в систему, но я продолжаю получать 400 Bad Request - Отсутствует необходимый параметр - Отсутствует требуемый параметр.

import oauth2 as oauth 

consumer = oauth.Consumer(client_id, client_secret) 
     client = oauth.Client(consumer) 
     client.add_credentials('email', 'password') 
     client.authorizations 
     creds = {'Authorization': 'Basic', 'x_auth_username': 'email', 'xauth_password': 'password'} 

    params = {} 
    params['x_auth_mode'] = 'client_auth' 
    params['x_auth_permission'] = 'write' 
    params['x_auth_username'] = 'email' 
    params['x_auth_password'] = 'password' 

    client.set_signature_method = oauth.SignatureMethod_HMAC_SHA1() 
    resp, token = client.request('https://vimeo.com/oauth/access_token', 
           method='POST', body=urllib.urlencode(params),headers=urllib.urlencode(creds)) 

ответ

1

Я думаю, что вам нужно data аргумент для обратного вызова - только гадать, основанные от проблем с OAuth.

Похоже, эту проблему (хотя я не думаю, что вам нужно XAUTH) был задан вопрос о SO:

OAuth Signature not valid error using Rauth, Python against the Vimeo API

Смотреть этот билет - посмотреть на источник запроса тяговой:

https://github.com/litl/rauth/pull/133

Вот нить непосредственно дело с Vimeo, что я ответил на некоторое время назад, что звучит как ваш вопрос:

https://plus.google.com/u/0/109199982702464952248/posts/KGMFVprjbzJ

В этом примере используется библиотека Rauth

from rauth import OAuth1Service 

def Authorize(): 
vimeo = OAuth1Service(
    name='Vimeo', 
    consumer_key=client_id, 
    consumer_secret=client_secret, 
    request_token_url='https://vimeo.com/oauth/request_token', 
    authorize_url='https://vimeo.com/oauth/authorize', 
    access_token_url='https://vimeo.com/oauth/access_token', 
    base_url='http://vimeo.com/api/rest/v2', 
) 
try: 
    request_token, request_token_secret = vimeo.get_request_token(key_token_secret=access_token_secret,data={}) 
    print(request_token) 
except Exception, e: 
    print(e) 
+0

Гах, я уверен, что это проблема. Я дам ему шанс, когда вернусь к коду. Я очень хочу, чтобы это было зарегистрировано где-то на сайте API Vimeo. – shelbydz

+0

Хорошо, с приведенным выше кодом я получаю «Декодер не смог обработать XXXX с данными, возвращенными провайдером. Может понадобиться другой декодер». Я передаю access_token и access_token_secret, которые Vimeo предоставил мне, когда я создал приложение. Я ** не ** звоню в службу, чтобы сначала получить oauth_verifier. Я бы хотел избежать этого, если это возможно. Кажется, что те возвращенные жетоны истекают через несколько часов. – shelbydz

+0

Я не могу, для жизни меня, заставить xauth работать. Но я думаю, что ** я получил повторное использование сеанса, собранное вместе с некоторыми из ваших опубликованных примеров. Первый раз, когда я должен позвонить service.get_auth_session. Потяните access_token и access_token_secret для последующего использования. в следующий раз вызовите 'session.get_session', передав в сохраненные токены. Я думал, что делаю это раньше, но я хранил проверку oauth и просил повторить аутентификацию. – shelbydz

Смежные вопросы