如何从机器人聊天中获取 Twitter OAuth 访问令牌/秘密?

Posted

技术标签:

【中文标题】如何从机器人聊天中获取 Twitter OAuth 访问令牌/秘密?【英文标题】:How do I get Twitter OAuth Access Token / Secret from bot chat? 【发布时间】:2022-01-08 14:24:04 【问题描述】:

我有一个 twitter 应用程序,它只是一个机器人,它响应 Twitter 本身中的 DM,并根据交互用户向机器人发送的消息向 Twitter API 发送请求。

现在我已经使用我自己用户的 OAuth 密钥和秘密对其进行了配置,但我想知道获得交互用户授权的最佳方法是什么?我是否必须创建一个服务器并让机器人 DM 链接让他们单击以将令牌/秘密发送到我的服务器,或者对于这样的应用程序有更好的方法吗?

【问题讨论】:

【参考方案1】:

答案是:使用 oauth2 流。特别是授权授予流程。

当用户使用网络访问 twitter,在聊天中输入一些字符串并激活您的 bot,应该在聊天中向用户返回一个 url。

用户单击该链接并将其重定向(另一个浏览器选项卡)到 twiter 的 oauth2 同意表单,并显示如下消息:Yaezah Bot 想要访问您 Twitter 帐户上的以下资源。你同意吗?...

如果用户接受,将被重定向到一个名为:oauth2 理论中的回调 url 的链接。此页面应显示一条简单的消息,例如:授权成功。这个页面的后端是你的,所以你可以得到授权码,然后用它来交换一个access_token。有了这个 access_token,你就不需要你的 clientid/clientsecret。您可以使用任何发送此 access_token 作为授权标头的 twitter http api。

如果您能够获取 access_token,请将其存储起来,然后使用您的机器人向用户发送一条消息,通知机器人已准备就绪。

我认为在手机上几乎是一样的。

【讨论】:

严格来说这并不准确,截至目前,Twitter 仅使用 OAuth 1.0A 进行用户身份验证。但是,是的,您确实需要实现服务器端使用 Twitter 登录流程才能获取用户的令牌和密码。 嗨,安迪,我认为你是对的。但是根据这个链接 developer.twitter.com/en/docs/authentication/oauth-2-0 和 developer.twitter.com/en/docs/authentication/oauth-2-0/… twitter 几乎准备好向用户和开发人员提供完整的 oauth2 功能 是的,这很快就会出现,正确的。

以上是关于如何从机器人聊天中获取 Twitter OAuth 访问令牌/秘密?的主要内容,如果未能解决你的问题,请参考以下文章

从 IBM Watson Assistant 获取我的聊天机器人中的选项列表

如何获取经过 Google 身份验证的用户(oauth2)的 Google 聊天(环聊)ID?

iOS 5 Twitter 框架。获取用户的 OAuth 访问令牌

百度聊天机器人UNIT http访问

如何部署和维护多个聊天机器人代理

如何在 iOS 中使用 Twitter API 1.1 获取 Token