Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh Mengesahkan dengan Twitter API v1.1 OAuth dan Dapatkan Garis Masa Pengguna menggunakan HttpWebRequest?

Bagaimanakah saya boleh Mengesahkan dengan Twitter API v1.1 OAuth dan Dapatkan Garis Masa Pengguna menggunakan HttpWebRequest?

Patricia Arquette
Lepaskan: 2025-01-12 18:11:45
asal
930 orang telah melayarinya

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

Menggunakan HttpWebRequest untuk Mengakses Twitter API v1.1: Pengesahan OAuth dan Pengambilan Garis Masa

Panduan ini memperincikan cara untuk mengesahkan dengan Twitter API v1.1 menggunakan OAuth dan seterusnya mendapatkan semula garis masa pengguna melalui HttpWebRequest. API v1 warisan sudah lapuk; kaedah ini menggunakan protokol yang dikemas kini.

Langkah Pengesahan OAuth:

  1. Dapatkan kunci dan rahsia pengguna OAuth anda daripada portal pembangun Twitter.
  2. Bina permintaan pengesahan yang disasarkan pada https://api.twitter.com/oauth2/token. Pengepala permintaan mesti menyertakan kunci dan rahsia pengguna anda menggunakan rentetan berkod Base64.
  3. Hantar permintaan POST dengan parameter badan grant_type=client_credentials.
  4. Menghuraikan respons JSON untuk mengekstrak token akses dan jenis token.

Mendapatkan semula Garis Masa Pengguna:

  1. Rumuskan permintaan untuk https://api.twitter.com/1.1/statuses/user_timeline.json. Sertakan parameter pertanyaan yang diperlukan seperti screen_name, include_rts, exclude_replies dan count.
  2. Sertakan token akses (diperolehi dalam langkah pengesahan) dalam pengepala kebenaran.
  3. Keluarkan permintaan GET dan huraikan respons JSON untuk mengakses data garis masa.

Contoh Kod (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>
Salin selepas log masuk

Ingat untuk menggantikan ruang letak dengan kunci dan nama skrin anda yang sebenar. Pengendalian ralat dan pengurusan pengecualian perlu ditambah untuk kegunaan pengeluaran. Contoh yang dipertingkatkan ini menjelaskan penamaan pembolehubah dan meningkatkan kebolehbacaan. Anda perlu memasang Newtonsoft.Json pakej NuGet untuk JsonConvert.

Atas ialah kandungan terperinci Bagaimanakah saya boleh Mengesahkan dengan Twitter API v1.1 OAuth dan Dapatkan Garis Masa Pengguna menggunakan HttpWebRequest?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan