api - Twitter API 仅应用程序身份验证

标签 api twitter-oauth

我正在按照文档使用 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 的新手,请查看它)

  1. 该请求必须是 HTTP POST 请求。网址是:https://api.twitter.com/oauth2/token
  2. 请求必须包含值为 Basic 的 Authorization header 。 例如:

    基本 eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw==

  3. 请求必须包含 Content-Type header ,其值为 application/x-www-form-urlencoded; 例如:Content-Type=application/x-www-form-urlencoded
  4. 点击 Body->Raw 并输入 grant_type=client_credentials

enter image description here

enter image description here

单击“发送”,您将获得访问 token 。

如果您在执行此步骤时遇到任何问题,请告诉我。

关于api - Twitter API 仅应用程序身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45078952/

相关文章:

node.js - 如何在一个模型中使用远程方法从另一个模型返回信息?

java - 如何使用从 Java 到 TestRail 的 API 将测试用例添加到现有的测试运行中?

android - 如何开发返回 JSON 数据的 Web 服务

javascript - 如何在 Windows 8 JavaScript (Metro) 中将 twitter oAuth 请求 token 转换为访问 token

android - 在 android 中集成 twitter 时出现异常

asp.net-mvc - 如何使用 ASP.NET MVC 5 应用程序将文件上传到第三个 API 服务?

javascript - 打开 AI 错误返回 429 和不安全的 header

oauth - 使用 OAuth 签署 twitter 用户流请求

json - 如何验证 Twitter api 请求?

twitter api v1.1 statuses/update_with_media url 参数丢失或无效