【发布时间】:2018-11-03 21:47:26
【问题描述】:
我正在尝试从 Twitter Oauth2 API 获取我的 App-Only Bearer 令牌。根据我的操作方式,我会收到错误 400(错误请求)或 503(服务暂时不可用)。我被难住了。
尝试 1 是通过 HTTPS 套接字(在 Xojo 中,如果你必须知道的话);当失败时,我下降到一个原始的 SSL 套接字,以便我确切地知道我正在发送什么。我正在发送这个(此处省略了凭据):
POST /oauth2/token HTTP/1.1
Host: api.twitter.com
User-Agent: My Twitter App v1.0.23
Authorization: Basic MUs1NGpvd (...stuff deleted...) MmpxeQ==
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-length: 29
Accept-Encoding: gzip
grant_type=client_credentials
此请求直接仿照docs 中的请求。它会产生 400(错误请求)错误代码。
然后我决定尝试 curl(再次省略凭据):
curl -i -d 'grant_type=client_credentials' -H 'Authorization: Basic MUs1NGpv (...blah blah...) mpxeQ==' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' 'https://api.twitter.com/oauth2/token'
这每次都会产生一个 503 状态码。
我的凭据只是我的 API 密钥和机密的 Base64 版本,用冒号连接。使用 STTwitterDemoOSX 进行测试时,相同的密钥和密码可以正常工作。我几乎(但不完全)绝望地使用 WireShark 来查看该应用程序正在发送什么。但一定有一些简单的事情我做错了。有什么想法吗?
【问题讨论】: