我正在尝试使用Postman上的twitters API从特定用户获取最新推文,但OAuth2遇到问题

时间:2019-06-08 15:37:26

标签: api twitter postman

我正在尝试使用Postman进行获取请求以从特定用户获取推文。我已经遵循了Twitters文档,并与Postman创建了Bearer Token,但是我仍然收到400错误。只是说错误的请求,没有关于此错误的详细信息。

客户ID和客户机密=我的消费者Api密钥和我的消费者Api密钥吗?还是这是我的访问令牌和访问令牌的秘密?

Postman Oauth2

然后我要向https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterdev&count=1

发出获取请求

1 个答案:

答案 0 :(得分:1)

一旦您拥有Bearer令牌,此过程比您在问题中显示的要简单得多。

为使其他人更容易理解此答案,以下是完整的过程。

您已经完成了一些操作,因此可以随时跳过使用邮递员请求带有承载者令牌的推特

PRE要求

  

注意:我使用的是Postman 7.1.1,但我知道,在此显示的所有内容也可以在以前的版本中使用(尽管授权标签等可能是稍有不同。)

对于那些可能想跟进但又不如用户提出问题的人而言,以下是如何进行追赶:

  1. 注册一个Twitter开发人员帐户。 (https://developer.twitter.com-并使用您现有的Twitter帐户登录,然后继续申请。现在有一个申请流程。)
  2. 拥有开发者帐户后,请创建一个新的应用程序。 (https://developer.twitter.com/en/apps)。
  3. 拥有应用程序后,进入应用程序的详细信息,然后进入密钥和令牌页,并记下“ API密钥”和“ API密钥”。
  4. 最后,为应用程序生成一个承载令牌。 (有关如何在邮递员中进行操作的步骤,或按照Twitter的说明通过CURL:https://developer.twitter.com/en/docs/basics/authentication/guides/bearer-tokens进行操作)。
    • 请注意,从文档中尚不清楚此载体令牌的有效期限。您可能(并且有可能)需要不时为应用程序重新生成承载令牌。

使用POSTMAN为您的应用程序生成承载令牌

创建邮递员请求,如下所示: BEARER TOKEN REQUEST

让我们指出此请求的各个部分:

  1. 该请求必须是POST请求。
  2. 请求网址为https://api.twitter.com/oauth2/token?grant_type=client_credentials
  3. 点击授权标签。
  4. 选择基本身份验证作为授权类型。
  5. 在邮递员用户名字段中输入您的Twitter API密钥。您在创建应用时记下了该值。
  6. 在“邮递员” 密码字段中输入您的Twitter API密钥。您在创建应用时记下了该值。
  7. 点击预览请求,它将获取授权值并为请求添加适当的标题。 (如果您不执行此请求,则该请求将不起作用,因为它没有正确的授权标头!)

像上面一样设置完毕后,发送此请求并记录响应,其格式应为:

{
    "token_type": "bearer",
    "access_token": "AAAAAAAAAAAAAAAAAAAAAE3Q%SOMEoLONGoTOKENoHEREoHEREoHEREoHEREoLxTx4xddH50oSOMEoLONGoTOKENoHEREoHEREoHEREoHEREoPxsd3x"
}

(以上不是真实的标记,这些单词仅用于说明。您的标记将是乱码。)

使用邮递员请求带有承载者令牌的推特

在进行所有准备工作之后,我们已经准备好直接回答@Kiyana的问题。

现在您有了一个Bearer令牌,可以很简单地向支持此授权类型的端点发出实际请求。 (请注意,并非所有Twitter端点都可能支持此功能。有关详细信息,请参考上面的承载令牌链接)。

创建另一个邮递员请求,如下所示: USER TIMELINE REQUEST

  1. 此请求可以是GET请求。
  2. 请求网址就是您在问题中记下的内容:https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterdev&count=1
  3. 点击授权标签。
  4. 这次选择承载者令牌作为授权类型。
  5. 令牌字段中,输入刚从承载令牌请求中收到的 access_token 的值。
  6. 点击预览请求,以正确设置请求的标题。 (如果您不执行此请求,则该请求将不起作用,因为它没有正确的授权标头!)

发送此请求,您确实应该收到您感兴趣的回复!

Timeline Request Response

直接将标题用于承载令牌

在这里,作为奖励,在上面的示例中,我们对邮递员使用了授权标签。但是,此选项卡所做的只是将正确的请求标头添加到您的请求中。如果您不想使用授权标签,则可以只向请求添加标头!

我不会详细介绍如何进行第一个操作(带有用户名/密码的基本身份验证),因为该操作有点麻烦。

但是,在第二种情况下,承载令牌的标头非常简单。添加的标头简称为Authorization,在那里传递的值只是字符串“ Bearer”,再加上空格再加上令牌。

例如:

Authorization: Bearer AAAAAAAAAAAAAAAAAAAAAE3Q%SOMEoLONGoTOKENoHEREoHEREoHEREoHEREoLxTx4xddH50oSOMEoLONGoTOKENoHEREoHEREoHEREoHEREoPxsd3x