在python中使用xauth连接到vimeo

时间:2013-10-27 18:40:45

标签: python oauth vimeo xauth

我正在尝试编写一个控制台脚本来处理一些视频并自动上传它们。使用我的vimeo开发者帐户,我创建了一个应用程序。每次上传时,都会使用此用户的帐户。我已通过此帐户申请并获得上传许可。

我假设我需要通过xAuth连接到api,因为我无法从回调网址获取oauth验证字符串。

我有这个python代码试图登录,但我不断得到 400错误请求 - 缺少必需参数 - 缺少必需参数。

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 个答案:

答案 0 :(得分: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)