介绍
我的凭据会有效多久?
默认情况下,除非你使用了offline.access
scope,否则通过带有 PKCE 的 Authorization Code Flow 创建的 access token 仅在两小时内有效。
刷新令牌
offline.access
范围(scope),将签发一个 OAuth 2.0 刷新令牌。使用该刷新令牌即可获取 access token。若未传入该范围,则不会生成刷新令牌。
以下是使用刷新令牌获取新的 access token 的请求示例:
App 设置
机密客户端
作用域
Scope | Description |
tweet.read | 你可查看的所有 Tweets,包括受保护账号的 Tweets。 |
tweet.write | 代表你发布 Tweet 和 转发。 |
tweet.moderate.write | 隐藏或取消隐藏对你 Tweets 的回复。 |
users.email | 已认证用户的电子邮件地址。 |
users.read | 你可查看的任何账号,包括受保护账号。 |
follows.read | 关注你的人以及你关注的人。 |
follows.write | 代表你关注或取消关注他人。 |
offline.access | 在你撤销授权前保持与账号的连接。 |
space.read | 你可查看的所有 Spaces。 |
mute.read | 你已静音的账号。 |
mute.write | 代表你静音或取消静音账号。 |
like.read | 你已 like 的 Tweets 以及你可查看的 likes。 |
like.write | 代表你对 Tweets 执行 like 或取消 like。 |
list.read | 你创建或加入的 Lists 的列表、成员和关注者,包括私有列表。 |
list.write | 代表你创建和管理 Lists。 |
block.read | 你已屏蔽的账号。 |
block.write | 代表你屏蔽或取消屏蔽账号。 |
bookmark.read | 获取已认证用户加书签的 Tweets。 |
bookmark.write | 为 Tweets 添加或移除书签。 |
media.write | 上传媒体。 |
请求速率限制
授权类型
OAuth 2.0 流程
术语表
术语 | 说明 |
授权类型(grant types) | OAuth 框架为不同用例规定了多种授权类型,并提供了创建新授权类型的机制。示例包括 authorization code、client credentials、device code 和 refresh token。 |
机密客户端(confidential client) | 指能够与授权服务器安全进行身份验证的应用,例如可安全保管其注册的 client secret。 |
公共客户端(public client) | 指无法使用已注册 client secret 的客户端,例如在浏览器或移动设备上运行的应用。 |
Authorization code 流程 | 由机密客户端和公共客户端使用,用于将 authorization code 交换为 access token。 |
PKCE | 对 authorization code 流程的扩展,用于防御多种攻击,并使公共客户端能够安全地执行 OAuth 交换。 |
Client ID | 可在开发者门户的“密钥和令牌”部分、标题为“Client ID”的位置找到。若未看到该项,请直接联系团队。生成 authorize URL 时需要使用 Client ID。 |
Redirect URI | 你的回调 URL。你需要通过精确匹配校验。 |
Authorization code | 允许应用代表用户调用 API。亦称 auth_code。一旦 App 所有者收到用户批准的 auth_code,该 auth_code 的有效期为 30 秒。你必须在 30 秒内将其交换为 access token,否则 auth_code 将过期。 |
Access token | Access tokens 是应用代表用户发起 API 请求时使用的令牌。 |
Refresh token | 允许应用通过 refresh token 流程在无需提示用户的情况下获取新的 access token。 |
Client Secret | 如果你选择的 App 类型为机密客户端,你将在 App 的“密钥和令牌”部分、“Client ID”下获得“Client Secret”。 |
参数
Parameter | Description |
response_type | 需要将该值设置为“code”,表示使用授权码。 |
client_id | 可在开发者门户中“Client ID”项下找到。 |
redirect_uri | 你的回调 URL。该值必须与 App 设置中定义的某个 Callback URL 精确匹配。对于 OAuth 2.0,回调 URL 需通过精确匹配校验。 |
state | 你用于防范CSRF 攻击的随机字符串。长度最多 500 个字符。 |
code_challenge | 一个 PKCE 参数,即为每次请求生成的随机机密。 |
code_challenge_method | 指定生成 code_challenge 的方法(S256 或 plain)。 |