二、Twitter 提供的三種 OAuth 認證方式

認證方式 場景 特點
OAuth 1.0a 需要用戶上下文的讀寫操作 使用 Consumer Key/Secret + Access Token/Secret,適合 CLI/后臺服務
OAuth 2.0 Bearer 僅獲取公開資源 簡單的 Bearer Token,僅限讀操作
OAuth 2.0 PKCE Web 與 Mobile 端的第三方登錄 更安全的授權碼流程,支持最小 scope 控制與刷新令牌

三、OAuth 1.0a:用戶上下文與寫操作授權

3.1 三步授權流程

  1. 獲取請求令牌

    POST https://api.twitter.com/oauth/request_token
  2. 用戶授權

    GET https://api.twitter.com/oauth/authorize?oauth_token=...
  3. 交換訪問令牌

    POST https://api.twitter.com/oauth/access_token

示例使用 Python requests-oauthlib 庫:

from requests_oauthlib import OAuth1Session

client = OAuth1Session(CONSUMER_KEY, client_secret=CONSUMER_SECRET)
# 步驟1
req_token = client.fetch_request_token('https://api.twitter.com/oauth/request_token')
# 步驟2:引導用戶訪問
print(f"請訪問: https://api.twitter.com/oauth/authorize?oauth_token={req_token['oauth_token']}")
verifier = input("輸入回調獲得的 oauth_verifier: ")
# 步驟3
client = OAuth1Session(CONSUMER_KEY, client_secret=CONSUMER_SECRET,
                       resource_owner_key=req_token['oauth_token'],
                       resource_owner_secret=req_token['oauth_token_secret'],
                       verifier=verifier)
access_token = client.fetch_access_token('https://api.twitter.com/oauth/access_token')
print("Access Token:", access_token)

> 長尾關鍵詞:Twitter OAuth1.0a 實現、requests-oauthlib 示例


四、OAuth 2.0 Bearer Token:應用上下文讀取公開數據

4.1 獲取 Bearer Token

curl -X POST "https://api.twitter.com/oauth2/token" \
  -H "Authorization: Basic $(echo -n "$KEY:$SECRET" | base64)" \
  -d "grant_type=client_credentials"

響應中即包含 "access_token",后續請求在 header 中使用:

Authorization: Bearer YOUR_BEARER_TOKEN

4.2 示例:拉取熱門話題

import requests

headers = {"Authorization": f"Bearer {BEARER_TOKEN}"}
resp = requests.get("https://api.twitter.com/2/tweets/search/recent?query=#AI", headers=headers)
print(resp.json())

> 核心關鍵詞:Twitter Bearer Token、公開數據調用、熱門話題抓取


五、OAuth 2.0 PKCE:現代 Web/Mobile 客戶端授權

5.1 PKCE 流程概述

  1. 生成 code_verifier & code_challenge
  2. 引導用戶授權

    GET https://twitter.com/i/oauth2/authorize?response_type=code&client_id=...&redirect_uri=...&code_challenge=...&code_challenge_method=S256&scope=...
  3. 交換 access_token

    POST https://api.twitter.com/2/oauth2/token
     -d grant_type=authorization_code
     -d code=RECEIVED_CODE
     -d redirect_uri=...
     -d code_verifier=ORIGINAL_VERIFIER
     -u "CLIENT_ID:CLIENT_SECRET"

5.2 Python 實戰示例

import secrets, hashlib, base64, requests

verifier = secrets.token_urlsafe(64)
challenge = base64.urlsafe_b64encode(hashlib.sha256(verifier.encode()).digest()).decode().rstrip('=')
auth_url = (
    "https://twitter.com/i/oauth2/authorize?" + 
    f"response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}"
    f"&scope=tweet.read%20tweet.write%20users.read&state=state&code_challenge={challenge}&code_challenge_method=S256"
)
print("訪問授權鏈接:", auth_url)
code = input("輸入授權返回的 code: ")
token_resp = requests.post(
    "https://api.twitter.com/2/oauth2/token",
    auth=(CLIENT_ID, CLIENT_SECRET),
    data={
        "grant_type":"authorization_code",
        "code":code,
        "redirect_uri":REDIRECT_URI,
        "code_verifier":verifier
    }
)
token = token_resp.json()["access_token"]

> 相關關鍵詞:Twitter OAuth2.0 PKCE、Mobile App 授權、代碼示例


六、安全與最佳實踐


七、YouTube 視頻與文檔導航


八、總結

本文深入剖析了 Twitter API Key 的三種 OAuth 認證與授權機制,結合實戰示例和 YouTube 視頻教程,幫助開發者快速:

掌握這些認證方式后,你就能靈活調用 X API,構建輿情監測、社交登錄以及智能推文工具。

原文引自YouTube視頻:
https://www.youtube.com/watch?v=6n0NQW7EMbU
https://www.youtube.com/watch?v=4sDOwFdMDIo

上一篇:

API 性能監控與瓶頸排查:指標、工具與實戰技巧

下一篇:

Twitter API Key 的獲取方法與申請流程
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費