이 가이드에서는 OAuth를 사용하여 Twitter API v1.1로 인증한 후 HttpWebRequest를 통해 사용자의 타임라인을 검색하는 방법을 자세히 설명합니다. 레거시 v1 API는 더 이상 사용되지 않습니다. 이 방법은 업데이트된 프로토콜을 활용합니다.
OAuth 인증 단계:
https://api.twitter.com/oauth2/token
을 대상으로 인증 요청을 구성합니다. 요청 헤더에는 Base64로 인코딩된 문자열을 사용하는 소비자 키와 비밀번호가 포함되어야 합니다.grant_type=client_credentials
를 사용하여 POST 요청을 보냅니다.사용자 타임라인 검색:
https://api.twitter.com/1.1/statuses/user_timeline.json
에 요청을 작성하세요. screen_name
, include_rts
, exclude_replies
, count
등 필수 쿼리 매개변수를 포함합니다.코드 예(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!