Diese Anleitung beschreibt, wie Sie sich mit der Twitter-API v1.1 mithilfe von OAuth authentifizieren und anschließend die Zeitleiste eines Benutzers über HttpWebRequest abrufen. Die alte v1-API ist veraltet; Diese Methode nutzt das aktualisierte Protokoll.
OAuth-Authentifizierungsschritte:
https://api.twitter.com/oauth2/token
. Der Anforderungsheader muss Ihren Verbraucherschlüssel und Ihr Geheimnis unter Verwendung einer Base64-codierten Zeichenfolge enthalten.grant_type=client_credentials
.Abrufen der Zeitleiste des Benutzers:
https://api.twitter.com/1.1/statuses/user_timeline.json
. Fügen Sie erforderliche Abfrageparameter wie screen_name
, include_rts
, exclude_replies
und count
hinzu.Codebeispiel (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>
Denken Sie daran, Platzhalter durch Ihre tatsächlichen Tasten und Ihren Bildschirmnamen zu ersetzen. Für den Produktionseinsatz sollten Fehlerbehandlung und Ausnahmeverwaltung hinzugefügt werden. Dieses verbesserte Beispiel verdeutlicht die Variablenbenennung und verbessert die Lesbarkeit. Sie müssen das Newtonsoft.Json
NuGet-Paket für JsonConvert
installiert haben.
Das obige ist der detaillierte Inhalt vonWie kann ich mich mit der Twitter API v1.1 OAuth authentifizieren und die Zeitleiste eines Benutzers mithilfe von HttpWebRequest abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!