> 백엔드 개발 > C++ > Twitter API v1.1 OAuth로 인증하고 HttpWebRequest를 사용하여 사용자의 타임라인을 검색하려면 어떻게 해야 합니까?

Twitter API v1.1 OAuth로 인증하고 HttpWebRequest를 사용하여 사용자의 타임라인을 검색하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2025-01-12 18:11:45
원래의
925명이 탐색했습니다.

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. body 매개변수 grant_type=client_credentials를 사용하여 POST 요청을 보냅니다.
  4. JSON 응답을 구문 분석하여 액세스 토큰과 토큰 유형을 추출합니다.

사용자 타임라인 검색:

  1. https://api.twitter.com/1.1/statuses/user_timeline.json에 요청을 작성하세요. screen_name, include_rts, exclude_replies, count 등 필수 쿼리 매개변수를 포함합니다.
  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.JsonJsonConvert NuGet 패키지가 설치되어 있어야 합니다.

위 내용은 Twitter API v1.1 OAuth로 인증하고 HttpWebRequest를 사용하여 사용자의 타임라인을 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿