如何使用 Postman 客户端调用 Twitter API

Posted

技术标签:

【中文标题】如何使用 Postman 客户端调用 Twitter API【英文标题】:How to make calls to Twitter API using Postman client 【发布时间】:2015-11-17 05:33:35 【问题描述】:

我已按照创建新应用程序并获取消费者密钥、秘密对以及令牌访问详细信息所需的步骤进行操作。现在我想使用 chrome Postman 客户端拨打Twitter Rest API。

我应该如何将客户密钥、秘密、令牌等详细信息传递给请求?我曾尝试将它们作为标头传递,也尝试通过在邮递员客户端中选择 OAuth1.0 选项来传递它们,但出现错误:


  "errors": [
    
      "code": 32,
      "message": "Could not authenticate you."
    
  ]

【问题讨论】:

尝试按照提到的步骤here 对于任何想知道的人,现在有一个 Twitter 公共工作区可以引导您直接在 Postman 中使用 Twitter API 并提供完整的文档:postman.com/twitter/workspace/twitter-s-public-workspace/… 【参考方案1】:

我知道这是旧的,但如果有人仍然面临这个问题,以下步骤对我有用:

    在“授权”选项卡中,选择 OAuth 1.0 输入您的用户密钥、用户密码、访问权限 令牌和访问令牌秘密 启用“将参数添加到标题”和 “自动添加参数” 发送请求

希望对你有帮助。

【讨论】:

我没有Auto add parameter Postman 在我发布此答案后已更新。在当前版本中,我只使用“将参数添加到标题”。 我不能让它工作!我尝试了 Pratik 解决方案,将 nonce 设置为 32 个字符长度,但没有,仍然有代码 32。我不想重复这个问题,但需要一些帮助。谢谢 确保您在请求中包含 user_iduser_name 参数,否则 Twitter 不会验证请求。我让它使用 6 个字符的 nonce,并且只选中了“将参数添加到 Header” 这适用于 2018 年 ..!谢谢?。 Postman 客户端已经改变了它的 UI 并且有一个名为“Add authentication data to”的对话框,我们应该选择“Request Headers”。【参考方案2】:

Juliana Chahoud's 2018 年更新答案:

添加授权数据已移至左侧列,需要您选择下拉菜单将其更改为“请求标头”。

【讨论】:

【参考方案3】:

Postman 创建 6 个字符的 nonce,Twitter 需要 32 个字符的 Nonce。所以你可以使用任何随机值,我使用了 ABCDEFGHIJKLMNOPQRSTUVWXYZ123456 (length=32)

【讨论】:

我不明白【参考方案4】:

你不能选择 Add params to header (pick 会失败) 你不需要关心Nonce

【讨论】:

您上面的屏幕截图表明 GET 不是 POST。当我尝试 POST 时出现此问题:api.twitter.com/1.1/statuses/update.json?status=HelloWorld!【参考方案5】:

将授权数据添加到“请求标头”

Twitter API 示例:https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=snap

这将生成 Authorization 标头。确保已生成。

结果

[
    
        "created_at": "Wed Mar 01 19:37:16 +0000 2017",
        "id": 837023955454201857,
        "id_str": "837023955454201857",
        "text": "RT @yoda: other things @snap has potentially worked on:\n\ntinker toys\nbaseball cards\nonesies\ntaco tosser\nshrunken christmas tree\nwalkie talk…",
        "truncated": false,
        "entities": 
            "hashtags": [],
            "symbols": [],
            "user_mentions": [
                
                    "screen_name": "yoda",
                    "name": "drew olanoff",
...

【讨论】:

【参考方案6】:

对我来说,Postman 创造了 11 个字符 Nonce。我得到了正确的带有 11 个字符 Nonce 的 Twitter API 响应。

【讨论】:

【参考方案7】:

如果有人在 2017 年达到此目标,我的问题也是随机数,但长度为 32 的随机数对我不起作用。我检查了教程并使用了那里发布的教程,它开始工作了。确保您选择邮递员将授权数据添加到标题而不是正文。

这是我的工作随机数:kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg

【讨论】:

【参考方案8】:

遵循接受的答案后,确保令牌/密钥末尾没有空格。否则会抛出同样的错误Could not authenticate you.

【讨论】:

【参考方案9】:

除了从 twitter 开发者控制台获取的身份验证设置外,在搜索 q=target_user_id 时,它与 q=@target_user_id 不同,我收到错误 32,无法对您进行身份验证。

所以,经过无数次尝试后,只是从 q 参数值中删除了“@”符号。

【讨论】:

以上是关于如何使用 Postman 客户端调用 Twitter API的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# HttpClient API 和 postman 测试的区别?客户端调用适用于邮递员,但不适用于 C# httpClient getAsync

邮递员:cookie 保存在哪里?

如何从Postman休息客户端发送spring csrf令牌?

如何从 Postman REST 客户端发送 spring csrf 令牌?

Postman调用动态o365 web api时出现403 Forbidden错误

如何使用 Postman 调用 Identity Server 4 进行登录