4

Twitter のステータスを更新する Metrol Style アプリを作成しています。LINQ to Twitter ライブラリを使用します。しかし、アプリが例外 401 Unauthorized をスローする理由がわかりません。これが私のコードです:

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";
    }
}
4

2 に答える 2

1

Windows 8 で LINQ to Twitter を使用して OAuth を使用する方法に関するブログ エントリを投稿しました。

http://geekswithblogs.net/WinAZ/archive/2012/07/02/using-linq-to-twitter-oauth-with-windows-8.aspx

また、こちらの LINQ to Twitter ドキュメントに 401 FAQ を含めました。

http://linqtotwitter.codeplex.com/wikipage?title=LINQ%20to%20Twitter%20FAQ&referringTitle=ドキュメント

于 2012-07-02T19:50:02.490 に答える
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;
    }

お役に立てれば。説明がある場合は、上げてください。ありがとう

于 2012-07-02T10:05:06.193 に答える