我正在尝试设置为使用Twitter API(仅应用程序身份验证),并且在获取承载令牌时遇到了麻烦,因此我可以开始进行调用。具体来说,我正在获取HTTP 403
{
"code": 99,
"message": "Unable to verify your credentials",
"label": "authenticity_token_error"
}
我已经设置了应用程序和开发环境,并获得了我的凭据(API密钥和API秘密密钥)。
我正在使用Talend API测试器进行所有操作。
我只是没看到问题。这是来自Twitter文档的示例请求,下面是我的请求,直接来自浏览器。
Twitter示例:
POST /oauth2/token HTTP/1.1
Host: api.twitter.com
User-Agent: My Twitter App v1.0.23
Authorization: Basic eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw==
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 29
Accept-Encoding: gzip
grant_type=client_credentials
我的实际要求:
POST /oauth2/token HTTP/1.1
Authorization: Basic ektCUTl5Q0tWRERVUVFwUDJXYzljWlpyYTowM1ZIb -- not really a key -- xhaHByMmlqWld3RkIxa1gxaXZ6cQ==
User-Agent: My App
Accept-Encoding: gzip
Content-Length: 29
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Host: api.twitter.com
grant_type=client_credentials
除了Authorization和User-Agent标头之外,它们是相同的。
因为Talend API Tester接受了用户名和密码,并对Authorization标头进行了Base 64编码,所以我什至拿走了API密钥,将其与API秘密密钥放在一起,并用冒号分隔了它们(根据Twitter文档)并手动进行了Base 64编码,并获得了与请求中发送的值相同的代码。
我确实读过,如果您发出太多请求,您可以得到403,基本上可以使您超时,但是上面的请求只是用新密钥发出的,并且在我上次尝试后的24小时以上。如果超时,我不确定它能持续多长时间。
欢迎。我决定使用Postman尝试此请求,这有点令人震惊,它第一次起作用。不知道Talend API Tester到底出了什么问题,但是这里却失败了。