4

내 트위터에서 상태를 업데이트하는 Metrol Style App을 쓰고 있습니다. 나는 LINQ를 Twitter 라이브러리에 사용한다. 하지만 왜 내 애플 리케이션이 예외 401 Unauthorized 던지 이해가 안돼. 여기 내 코드는 다음과 같습니다.트위터에서 상태를 업데이트하는 방법 C# 및 LINQ to Twitter 라이브러리

private void UpdateStatus() 
{ 
    // configure the OAuth object 
    var auth = new SingleUserAuthorizer 
    { 
     Credentials = new InMemoryCredentials 
     { 
      ConsumerKey = "ConsumerKey", 
      ConsumerSecret = "ConsumerSecret", 
      OAuthToken = "TwitterAccessToken", 
      AccessToken = "TwitterAccessTokenSecret" 
     } 
    }; 

    using (var twitterCtx = new TwitterContext(auth, "https://api.twitter.com/1/", "https://search.twitter.com/")) 
    { 
     var tweet = twitterCtx.UpdateStatus("Hi everybody!"); // error here 

     viewTextBlock.Text = String.Empty; 
     viewTextBlock.Text = viewTextBlock.Text + "Status returned: " + 
              "(" + tweet.StatusID + ")" + 
              tweet.User.Name + ", " + 
              tweet.Text + "\n"; 
    } 
} 
+0

어쨌든 지금하고있는 방식으로 문자열을 연결할 수 있습니다. 'String.Format ("반환 된 상태 : ({0}), {1}, {2}", ...)}을 사용하십시오. – abatishchev

+1

여기에 자격 증명을 게시했는데 안전하지 않습니다. http://dev.twitter.com에서 앱을 방문하여 토큰을 다시 생성 할 수 있다면 좋을 것입니다. –

답변

0

Twitterizer 어셈블리를 사용하여 구현할 수 있습니다. 먼저 Twitter에 액세스하는 데 사용할 수있는 토큰을 만든 다음 해당 토큰을 사용하여 TwitterStatus (Twitterizer.Core.TwitterObject.TwitterStatus)를 업데이트 할 수 있습니다. 샘플 코드는 다음과 같습니다.

public void CreateCachedAccessToken(string requestToken) 
    { 
     string ConsumerKey = ConfigurationManager.AppSettings["ConsumerKey"]; 
     string ConsumerSecret = ConfigurationManager.AppSettings["ConsumerSecret"]; 

     OAuthTokenResponse responseToken = OAuthUtility.GetAccessToken(ConsumerKey, ConsumerSecret, requestToken); 

     //Cache the UserId 
     Session["GetCachedUserId"] = responseToken.UserId; 

     OAuthTokens accessToken = new OAuthTokens(); 
     accessToken.AccessToken = responseToken.Token; 
     accessToken.AccessTokenSecret = responseToken.TokenSecret; 
     accessToken.ConsumerKey = ConsumerKey; 
     accessToken.ConsumerSecret = ConsumerSecret; 

     Session["AccessToken"] = accessToken; 
    } 

TwitterStatus를 업데이트하려면 다음과 같이하십시오.

public OAuthTokens GetCachedAccessToken() 
    { 
     if (Session["AccessToken"] != null) 
     { 
      return (OAuthTokens)(Session["AccessToken"]); 
     } 
     else 
     { 
      return null; 
     } 
    } 

TwitterStatus.Update(GetCachedAccessToken(), txtTweet.Trim()); 

아래의 한 방법

은에 기호를 구현하는 데 사용할 수 있습니다.이 도움이

protected string GetTwitterAuthorizationUrl() 
    { 
     string ConsumerKey = ConfigurationManager.AppSettings["ConsumerKey"]; 
     string ConsumerSecret = ConfigurationManager.AppSettings["ConsumerSecret"]; 

     OAuthTokenResponse reqToken = OAuthUtility.GetRequestToken(ConsumerKey, ConsumerSecret); 
     return "https://twitter.com/oauth/authorize?oauth_token=" + reqToken.Token; 
    } 

희망을. 설명이있는 경우 인상하십시오. 감사합니다

+0

답장을 보내 주셔서 감사합니다. 그러나 트위터 라이저 어셈블리를 내 Metrol Style App에 추가하는 방법은 무엇입니까? –

+0

http://www.twitterizer.net/downloads/에서 다운로드 할 수 있습니다. – Sugandika