ホームページ > バックエンド開発 > C++ > Twitter API v1.1 OAuth で認証し、HttpWebRequest を使用してユーザーのタイムラインを取得するにはどうすればよいですか?

Twitter API v1.1 OAuth で認証し、HttpWebRequest を使用してユーザーのタイムラインを取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-12 18:11:45
オリジナル
928 人が閲覧しました

How can I Authenticate with Twitter API v1.1 OAuth and Retrieve a User's Timeline using HttpWebRequest?

HttpWebRequest を使用して Twitter API v1.1 にアクセスする: OAuth 認証とタイムラインの取得

このガイドでは、OAuth を使用して Twitter API v1.1 で認証し、その後 HttpWebRequest 経由でユーザーのタイムラインを取得する方法について詳しく説明します。 レガシー v1 API は廃止されました。このメソッドは、更新されたプロトコルを利用します。

OAuth 認証手順:

  1. Twitter 開発者ポータルから OAuth コンシューマー キーとシークレットを取得します。
  2. https://api.twitter.com/oauth2/token を対象とした認証リクエストを作成します。 リクエスト ヘッダーには、Base64 でエンコードされた文字列を使用したコンシューマ キーとシークレットを含める必要があります。
  3. 本文パラメータ grant_type=client_credentials を使用して POST リクエストを送信します。
  4. JSON 応答を解析して、アクセス トークンとトークン タイプを抽出します。

ユーザーのタイムラインの取得:

  1. https://api.twitter.com/1.1/statuses/user_timeline.jsonへのリクエストを作成します。 screen_nameinclude_rtsexclude_repliescount などの必要なクエリ パラメーターを含めます。
  2. アクセス トークン (認証ステップで取得した) を認可ヘッダー内に組み込みます。
  3. GET リクエストを発行し、JSON レスポンスを解析してタイムライン データにアクセスします。

コード例 (C#):

<code class="language-csharp">//  Assume these variables are pre-populated:
//  oAuthConsumerKey: Your OAuth consumer key
//  oAuthConsumerSecret: Your OAuth consumer secret
//  screenname: The target Twitter username

// Authentication
string authHeaderFormat = "Basic {0}";
string authHeader = string.Format(authHeaderFormat,
    Convert.ToBase64String(Encoding.UTF8.GetBytes(Uri.EscapeDataString(oAuthConsumerKey) + ":" +
    Uri.EscapeDataString(oAuthConsumerSecret))));
string postBody = "grant_type=client_credentials";
HttpWebRequest authRequest = (HttpWebRequest)WebRequest.Create("https://api.twitter.com/oauth2/token");
authRequest.Headers.Add("Authorization", authHeader);
authRequest.Method = "POST";
authRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
authRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

using (Stream stream = authRequest.GetRequestStream())
{
    byte[] content = ASCIIEncoding.ASCII.GetBytes(postBody);
    stream.Write(content, 0, content.Length);
}

authRequest.Headers.Add("Accept-Encoding", "gzip");
HttpWebResponse authResponse = (HttpWebResponse)authRequest.GetResponse();

// Deserialize authentication response
TwitterAuthResponse authResponseObject;
using (authResponse)
{
    using (StreamReader reader = new StreamReader(authResponse.GetResponseStream()))
    {
        string json = reader.ReadToEnd();
        authResponseObject = JsonConvert.DeserializeObject<TwitterAuthResponse>(json);
    }
}

// Timeline Request
string timelineFormat = "https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name={0}&include_rts=1&exclude_replies=1&count=5";
string timelineUrl = string.Format(timelineFormat, screenname);
HttpWebRequest timelineRequest = (HttpWebRequest)WebRequest.Create(timelineUrl);
string timelineHeaderFormat = "{0} {1}";
timelineRequest.Headers.Add("Authorization", string.Format(timelineHeaderFormat, authResponseObject.token_type, authResponseObject.access_token));
timelineRequest.Method = "GET";
HttpWebResponse timelineResponse = (HttpWebResponse)timelineRequest.GetResponse();


// Parse timeline response
string timelineJson;
using (timelineResponse)
{
    using (StreamReader reader = new StreamReader(timelineResponse.GetResponseStream()))
    {
        timelineJson = reader.ReadToEnd();
    }
}

// Process the timelineJson data.</code>
ログイン後にコピー

プレースホルダーを実際のキーとスクリーン名に置き換えることを忘れないでください。 本番環境で使用するには、エラー処理と例外管理を追加する必要があります。 この改良された例では、変数の命名が明確になり、読みやすさが向上しています。 Newtonsoft.Json 用の JsonConvert NuGet パッケージがインストールされている必要があります。

以上がTwitter API v1.1 OAuth で認証し、HttpWebRequest を使用してユーザーのタイムラインを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート