python - Pocket API 访问 token 请求

标签 python api oauth token

我正在尝试从 Pockets API 获取访问 token

我能够成功获取请求 token ,但是当我尝试使用它来获取访问 token 时,它失败并出现 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

我就是想不通。我很确定请求 token 是有效的(有什么方法可以确认吗?),我通过重定向到 Pockets 授权页面,单击授权,然后我被重定向到 redirect_uri。在获取 redirect_uri 时,我会调用 getAccessToken()

如果我需要提供任何额外信息,请告诉我。感谢您的帮助。

更新:

进一步研究这个问题,Pocket 有一个 HTTPError 描述列表。我抛出的是 138 - 缺少消费者 key 。

现在这更没有意义了,因为我使用完全相同的消费者 key 来获取请求 token 。

响应头:

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

最佳答案

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

关于python - Pocket API 访问 token 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15181648/

相关文章:

android - 谷歌 API key 丢失

api - YouTube API - 用户帐户已关闭

ruby-on-rails - 如何从Rails中的Elasticsearch检索所有记录

api - OAuth2流程理解

azure - 使用 Azure AD 和应用角色保护 SPA 和 API

android - Facebook SDK 3.0 :How to remove "you have already authorized to this app" screen

python - CVXPY 抛出 SolverError

python - python线程可以访问命名空间中的变量吗?

python - 如何使用测试客户端填写 Django 表单

python - 零维数组无法串联,但我的数组不是零维