1

TokenInfoにアクセスするには、Python用のGoogle APIクライアントライブラリ(oauth2clientアプリエンジン)を使用します。oauth2アクセストークンを受け取りましたが、このコードは正常に機能します。

@decorator.oauth_aware        
def get(self):

    ....
    ....
    if decorator.has_credentials() :
        body = urllib.urlencode({'access_token': decorator.credentials.access_token})
        http = httplib2.Http()
        resp, content = http.request("https://www.googleapis.com/oauth2/v1/tokeninfo",method="POST", body=body)    

しかし、デコレータを使用して許可されたhttpインスタンスを作成すると、次のようになります。

@decorator.oauth_aware        
def get(self):

    ....
    ....
    if decorator.has_credentials() :
        http = decorator.http()                              
        resp, content = http.request("https://www.googleapis.com/oauth2/v1/tokeninfo",method="POST") 

私は受け取ります:

'status' : '400'
{
 "error": "invalid_token",
 "error_description": "either access_token or id_token required"
}

UPDATE-1

私はoauth2client\client.pyを調べました:decorator.http()はリクエストを承認するだけでなく、有効期限が切れている場合はaccess_tokenを更新します。

これを解決する方法についてのアイデアを歓迎しますか?ご協力いただきありがとうございます。

UPDATE-2および解決済み

TokeInfoAPIには認証は必要ありません。リクエスト自体にaccess_tokenが含まれている必要があります。Authorizationヘッダーは無視されます。

4

1 に答える 1

2

私はoauth2client\client.pyを調べました:decorator.http()はリクエストを承認するだけでなく、有効期限が切れている場合はaccess_tokenを更新します。

これを解決する方法についてのアイデアを歓迎しますか?ご協力いただきありがとうございます。

更新して解決

TokeInfoAPIには認証は必要ありません。リクエスト自体にaccess_tokenが含まれている必要があります。Authorizationヘッダーは無視されます。

于 2012-11-13T12:26:57.343 に答える