我正在按照文档使用 Twitter API 实现 OAuth: Application-only authentication 我使用 Consumer key 和 Consumer Secret 创建了 POST 请求,如下所示:
POST http://api.twitter.com/oauth2/token
Authorization: Basic T3k2TlA4SnpCVGRiNXlFTUt2dGswamJGSTpiSlpEYm1xeExyeDJKU25JbUplcWdlQTJkREcwZXg0bUNtOUdGTGJ1TGF3TkZkNkxqNg==
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
grant_type=client_credentials
我收到的回复有以下错误:
"{"errors":[{"code":99,"label":"authenticity_token_error","message":"Unable to verify your credentials"}]}"
尽管如此,我正在从我的应用设置中获取数据
最佳答案
按照 2 个步骤操作。我自己已经完成并测试了它。它工作正常,您将能够获得访问 token
步骤 1)
就您而言,您必须将以下两个值替换为您的消费者 key 和 secret :
消费者 key = xvz1evFS4wEEPTGEFPHBog
消费者 secret = L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg
使用消费者 key 和消费者 secret ,我们必须生成一个 Base 64 字符串。因此,要做到这一点,我们必须首先使用冒号(:) 作为分隔符连接消费者 key 和消费者 secret
所以在我的例子中,连接的字符串将是:
xvz1evFS4wEEPTGEFPHBog:L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg
注意:连接字符串中不应有空格
现在我们已经准备好连接字符串了。现在我们必须生成 Base 64 字符串。为此,我们可以使用在线服务来做到这一点。 打开这个网址http://www.motobit.com/util/base64-decoder-encoder.asp并粘贴您的连接字符串并单击“转换源代码”。这将为您提供 Base 64 字符串。
就我而言,Base 64 字符串是(您的情况会有所不同):
xvz1evFS4wEEPTGEFPHBog:L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg
现在,通过使用 Base64 字符串,我们必须生成 Base 64 编码字符串。为此,我们可以使用在线服务。打开链接https://www.base64encode.org/并粘贴我们的 Base64 字符串并单击“编码”。
最后您将获得我们必须在 token 请求中使用的 Base64 编码字符串。 就我而言,它看起来像这样:
eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw==
步骤 2)
现在打开你的 POSTMAN(它是用于测试 API 的 google chrome 插件)并执行以下步骤:(我还附上了 POSTMAN 请求的屏幕截图,如果你是 POSTMAN 的新手,请查看它)
- 该请求必须是 HTTP POST 请求。网址是:https://api.twitter.com/oauth2/token
请求必须包含值为 Basic 的 Authorization header 。 例如:
基本 eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw==
- 请求必须包含 Content-Type header ,其值为 application/x-www-form-urlencoded; 例如:Content-Type=application/x-www-form-urlencoded
- 点击 Body->Raw 并输入 grant_type=client_credentials
单击“发送”,您将获得访问 token 。
如果您在执行此步骤时遇到任何问题,请告诉我。
关于api - Twitter API 仅应用程序身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45078952/