使用 Bearer Token 在 Twitter API 中获取用户信息

4
我正在使用 Laravel 应用程序中的 Twitter API。在我的应用程序中,当用户插入 URL 时,我想要获取用户名和个人资料图片。我搜寻了很多,但都没有找到。对于用户信息,我必须让用户登录 Twitter 并连接我的应用程序以获取访问令牌。我只想使用应用程序授权,这样用户就不需要登录 Twitter。我发现使用 Bearer token 可以通过此搜索 API 搜索推文:
https://api.twitter.com/1.1/search/tweets.json?q=twitterapi
有没有 API 能够使用 URL 获取用户屏幕名称?
我知道可能有类似的帖子,大多数回答都是说“此页面不存在”或要求使用 Oauth。
提前感谢您。
2个回答

6
啊,我太懒了,不想读整个文档。
这里是关于应用程序认证的所有信息。你需要做的就是首先使用 RFC 1738 对消费者密钥和密钥进行编码,然后在
中重新对它们进行编码。
Base64 "RFC-1738-encoded-consumer-key:RFC-1738-encoded-consumer-secret"

格式。您将获得类似于bearer token的凭据,如下所示:

eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw==

现在,您只需要使用post请求获取带有以下URL的bearer token:

https://api.twitter.com/oauth2/token?grant_type=client_credentials

请确保设置标题:

Authorization: Basic bearer-token-credentials
Content-Type: application/x-www-form-urlencoded
Content-Length: 29 

您将会得到以json格式表示的Bearer Token。

现在,每次请求时,只需将此bearer token作为头部发送即可。

Authorization: Bearer bearer-token

您可以获取不需要用户身份验证的数据。例如,如果您想通过屏幕名称或ID获取用户数据,只需在以下URL上发送POST请求:https://api.twitter.com/1.1/users/show.json?screen_name=这里输入 Twitter 屏幕名称


有没有相关的示例脚本? - user198989
很遗憾,我曾在之前的公司工作时,在我的 Laravel 项目中编写了 PHP 代码,但是你可以在任何编程语言中创建简单的 Curl 请求。 - Jitesh Meniya
1
如果您需要 PHP 代码,这可能会对您有所帮助,https://hackthestuff.com/article/how-to-integrate-oauth2-twitter-api - Jitesh Meniya

1
我希望我理解你的意思。用户给出了URL twitter.com/edent,您想在不使用API的情况下获取该名称和头像,对吗?
对于头像,您可以作弊并使用https://avatars.io
调用https://avatars.io/twitter/edent,您将获得我的头像图像。
不幸的是,没有办法在不使用API的情况下获取名称。您可以尝试从HTML中抓取数据,但Twitter可能会更改其工作方式。

谢谢回复。它在某种程度上帮助了我。我准备使用API,但它不应该要求用户连接Twitter与我的应用程序提交URL。难道没有像YouTube提供的简单访问令牌API吗? - Jitesh Meniya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接