【问题标题】:how to get user timeline using twitterizer2如何使用 twitterizer2 获取用户时间线
【发布时间】:2012-11-07 23:30:17
【问题描述】:

我正在使用 twitterizer2 尝试获取用户最近的几条推文,然后使用 oAuth 而不是用户的屏幕名称将它们写入表格,但我是 twitterizer 新手,所以我不知道该怎么做。

        var step = Request.QueryString["p"].ToString();
        var key = ConfigurationManager.AppSettings["twitterKey"];
        var secret = ConfigurationManager.AppSettings["twitterSecret"];

        if (step == "1")
        {
            var reqquest = OAuthUtility.GetRequestToken(key, secret, "http://localhost:2480/Site/Default2.aspx?p=2").Token;
            Response.Redirect(OAuthUtility.BuildAuthorizationUri(reqquest, true).AbsoluteUri);
        }

        else if (step == "2")
        {
            var token = Request.QueryString["oauth_token"];
            var verifier = Request.QueryString["oauth_verifier"];

            OAuthTokenResponse getTokens = OAuthUtility.GetAccessToken(key, secret, token, verifier);

            var oAuth_token = new OAuthTokens();
            oAuth_token.AccessToken = getTokens.Token;
            oAuth_token.ConsumerKey = key;
            oAuth_token.ConsumerSecret = secret;
            oAuth_token.AccessTokenSecret = getTokens.TokenSecret;

            TwitterResponse<TwitterStatusCollection> tweets = TwitterTimeline.UserTimeline(oAuth_token);

            foreach (var tweet in tweets.ResponseObject)
            {
                Response.Write(tweet.Text);
            }

            //TwitterStatus.Update(oAuth_token, "hello");
        }

我该怎么做? 谢谢

【问题讨论】:

    标签: c# asp.net twitter twitterizer


    【解决方案1】:

    您应该首先获取用户的 oAuth 令牌。

    首先,您需要用户的访问令牌。您可以使用

    检索这些
    var requestToken = OAuthUtility.GetRequestToken("consumerKey", "consumerSecret", "your return url").Token;
    Response.Redirect(OAuthUtility.BuildAuthorizationUri(requestToken, true).AbsoluteUri);
    

    这应该要求您登录 Twitter。然后您将返回到您设置的返回 url,QueryString 中有 oauth_token 和 oauth_verifier。这些是访问令牌。

    现在您可以使用这些令牌来检索该用户的推文,方法是使用

     TwitterResponse<TwitterStatusCollection> tweets = TwitterTimeline.UserTimeline(authorization_tokens);
    

    通过做这样的事情来遍历这些

     foreach (var tweet in tweets.ResponseObject)
     {
          string tweetText = tweet.Text;
     }
    

    【讨论】:

    • 它似乎可以正常发布,但是当尝试使用您提供的代码检索时间线时,我收到此错误:Unexpected token when deserializing object: StartObject. Path '[1]', line 1, position 1864./
    • Twitterizer 使用 Json.Net 库来解析 Twitter 返回的 Json。似乎有问题,其他用户也是experiencing。你有最新版本的 Twitterizer2 吗?你在哪里得到它?我从 NuGet 得到了我的,没有出现这个错误。
    • 谢谢。我通过nuget卸载并重新安装,错误似乎消失了,但现在它抛出了这个错误Object reference not set to an instance of an object. 在这一行 foreach (var tweet in tweets.ResponseObject)
    • 这意味着你还没有初始化tweets。这行代码初始化tweetsTwitterResponse&lt;TwitterStatusCollection&gt; tweets = TwitterTimeline.UserTimeline(authorization_tokens);
    • 这意味着 ResponseObject 仍然为空。没有可以检索的推文。如果设置断点,则可以检查 tweets 对象中的确切内容。
    猜你喜欢
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 2012-07-06
    相关资源
    最近更新 更多