2013-03-03 208 views
5

我试图从Pockets API掌上API访问令牌请求

我能够成功地获得请求令牌获得访问令牌,但是当我试图用它来获得访问令牌,它失败400错误的请求错误。

下面的代码:

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。如果我需要提供任何额外信息,请让我知道。如果我需要提供任何额外的信息,请让我知道。谢谢你的帮助。

更新:

进一步看这个问题,掌上有HTTPError说明的列表。我扔的那个是138 - 缺少消费者钥匙。

由于我使用完全相同的使用者密钥来获取请求令牌,因此这使得现在更加没有意义。

响应头:

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

取下{"consumer_key":["12092-2970cc0e27ce9a25cb39f1dd"],[]。您正在传递一个列表,您可能应该传递一个字符串。 应该修复它。

+0

哦,伙计。有效。感谢Burhan,我一直在这里待了好几个小时。你是最好的。 – ponderinghydrogen 2013-03-03 04:31:34