2011-11-20 69 views
0

我正試圖將應用程序與Yahoo! api需要oauth認證來訪問受保護的數據。在Yahoo!中使用OAuth API請求(Python)

我使用的是python-oauth2,以下列出了雅虎的Oauth Authorization Flow文檔中列出的步驟。我已經能夠完成所有步驟來與雅虎協商訪問令牌,但似乎無法使用token to authenticate

這裏是我的代碼:「請提供有效憑據的OAuth oauth_problem =」

import oauth2 as oauth 

def list_users(token): 
    # token is the access token i save in the DB 
    oauth_token = oauth.Token(token.token, token.secret) 
    consumer = oauth.Consumer(key=settings.OATH_CONSUMER_KEY, 
           secret=settings.OATH_SECRET) 
    client = oauth.Client(consumer, oauth_token) 
    resp, content = client.request((LIST_USERS_URL), "GET") 
    return content 

然而,所有我能得到的回覆是一個錯誤信息,說signature_invalid「境界=」 yahooapis。 com「」

我在這裏做錯了什麼?到目前爲止,其他一切都很順利。

+0

在調用https://api.login.yahoo.com/oauth/v2/request_auth?之前,您是否運行了「https:// api.login.yahoo.com/oauth/v2/get_request_token」過程?並最終前往'https:// api.login.yahoo.com/oauth/v2/get_token'獲取實際的access_token?一個常見的問題是混淆request_token作爲access_token。 –

+0

是的,我得到請求令牌和訪問令牌並使用訪問令牌進行驗證。 – Cory

+0

如果access_token沒問題,唯一的小錯誤就是在'resp,content = client.request(LIST_USERS_URL),「GET」)中缺少一個「(」。最後要檢查的是[應用範圍](http://developer.yahoo.com/oauth/guide/oauth-scopes.html),註冊期間它是否正確? –

回答

0

嗯,我覺得有點羞怯。所以事實證明,當你訪問一個無效的API調用時,雅虎也會拋出這個確切的錯誤。所以在我的情況下,當我必須指定一個子API時,我正在訪問一個根API。故事的寓意:請注意,oauth錯誤可能代表您的應用/代碼中的其他問題。