我正在开发一个应用程序,它将读取我公司的一些推特数据。我想让所有的员工连接他们的twitter帐户。
我面临以下问题:我被“访问令牌的Exchange授权代码”卡住了。
授权后的响应url是:https://example/v1/browser-callback?state=state&code=all0UTY5TVVMYmctNjZEQVpYYYYYYYYZZZZZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
我想我必须为access_token和access_token_secret更改代码access_token和access_token_secret,但是我在twitter提供给我们的文档中找不到如何做到这一点。

发布于 2022-03-14 11:15:50
首先,您需要知道要实现的流的类型。
首先,您需要知道在twitter端您的client_id的授予类型是什么,我在回调中看到了代码,这意味着您处于正常的授权代码或授权代码流中,其中包含了代码的验证密钥,如果您在params code_challenge_method中看到了PKCE流,那么在第一次调用twitter时,您就知道了这一点;
其次,我看到您已经成功地完成了流的第一步,然后如果您在PKCE中,您需要在回调中发送另一个请求来获得最后的令牌,如下所示:
client_id=your client_id&
code_verifier=the code generated by the application in the first step&
redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fcallback&
grant_type=authorization_code&
code=the code sent from twitter发布于 2022-12-02 00:20:40
我不知道3月份医生们是什么样子,但要做到这一点,现在只需使用重定向URL中的代码参数构建请求头。从您给出的示例url (https://example/v1/browser-callback)中,您的代码是:all0UTY5TVVMYmctNjZEQVpYYYYYYYYZZZZZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
您将为私有客户端提出的curl请求检索用户的承载和刷新令牌,其内容如下:
curl --location --request POST 'https://api.twitter.com/2/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic YOUR_BASE64_ENCODED_ClientID:ClientSecret_HERE'\
--data-urlencode 'code=all0UTY5TVVMYmctNjZEQVpYYYYYYYYZZZZZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'redirect_uri=https://example/v1/browser-callback' \
--data-urlencode 'code_verifier=challenge'其中YOUR_BASE64_ENCODED_ClientID:ClientSecret_HERE是(每个文档):
要创建基本的授权头,您需要对客户端ID和客户端秘密进行base64编码,这可以从开发者门户内应用程序的“键和令牌”页面中获得。
在用户授权您的应用程序之后,您需要在收到回调URL上的代码后30秒内为私有客户机获取初始承载令牌/刷新令牌的请求。
https://stackoverflow.com/questions/71465525
复制相似问题