5

Pockets APIからアクセス トークンを取得しようとしています。

リクエスト トークンは正常に取得できますが、それを使用してアクセス トークンを取得しようとすると、400 Bad Request エラーで失敗します。

コードは次のとおりです。

def getAccessToken(request_code):
    headers = {'Content-Type' : 'application/json; charset=UTF-8','X-Accept': 'application/json'}
    request_data = json.dumps({"consumer_key":["12092-2970cc0e27ce9a25cb39f1dd"],"code":["af0f6c9b-815b-cd1d-9864-b6d375"]})
    url = "https://getpocket.com/v3/oauth/authorize"

    response_data = makeRequest(headers,request_data,url)
    access_code, username = response_data['access_token'],response_data['username']

    return access_code,username

def makeRequest(request_headers,request_data,request_url):
    request = urllib2.Request(request_url,request_data,request_headers)
    response = urllib2.urlopen(request)
    data = json.load(response)

    return data

私はそれを理解できないようです。Request Token が有効であることは確かです (確認する方法はありますか?)。Pockets の承認ページにリダイレクトし、承認をクリックすると、redirect_uri にリダイレクトされます。redirect_uri を取得したら、getAccessToken() を呼び出します。

追加情報を提供する必要がある場合は、お知らせください。助けてくれてありがとう。

アップデート:

この問題をさらに詳しく調べると、Pocket には HTTPError の説明のリストがあります。私が投げているのは 138 - Missing consumer key です。

まったく同じコンシューマ キーを使用してリクエスト トークンを取得しているため、これはさらに意味がありません。

応答ヘッダー:

Cache-Control: private
Content-Type: text/html; charset=UTF-8
Date: Sun, 03 Mar 2013 03:54:01 GMT
P3P: policyref="/w3c/p3p.xml", CP="ALL CURa ADMa DEVa OUR IND UNI COM NAV INT STA PRE"
Server: Apache/2.2.23 (Amazon)
Status: 400 Bad Request
X-Error: Missing consumer key.
X-Error-Code: 138
4

1 に答える 1

4

[およびを]から削除し{"consumer_key":["12092-2970cc0e27ce9a25cb39f1dd"],ます。リストを渡します。おそらく文字列を渡す必要があります。それはそれ修正する必要があります。

于 2013-03-03T04:11:28.310 に答える