C# 如何使用twitterizer2获取用户时间线

C# 如何使用twitterizer2获取用户时间线,c#,asp.net,twitter,twitterizer,C#,Asp.net,Twitter,Twitterizer,我正在使用twitterizer2尝试获取用户最近的几条tweet,然后使用oAuth(而不是用户屏幕名称)将它们写入一个表中,但我对twitterizer是新手,所以我不知道如何做到这一点 var step = Request.QueryString["p"].ToString(); var key = ConfigurationManager.AppSettings["twitterKey"]; var secret = Configurati

我正在使用twitterizer2尝试获取用户最近的几条tweet,然后使用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");
        }
var step=Request.QueryString[“p”].ToString();
var key=ConfigurationManager.AppSettings[“twitterKey”];
var secret=ConfigurationManager.AppSettings[“twitterSecret”];
如果(步骤==“1”)
{
var reqquest=OAuthUtility.GetRequestToken(密钥,秘密,“http://localhost:2480/Site/Default2.aspx?p=21.代币;
重定向(OAuthUtility.BuildAuthorizationUri(reqquest,true.AbsoluteUri);
}
否则如果(步骤==“2”)
{
var token=Request.QueryString[“oauth_token”];
var-verifier=Request.QueryString[“oauth_-verifier”];
OAuthTokenResponse getTokens=OAuthUtility.GetAccessToken(密钥、秘密、令牌、验证器);
var oAuth_token=新的OAuthTokens();
oAuth_token.AccessToken=getTokens.token;
oAuth_token.ConsumerKey=key;
oAuth_token.ConsumerSecret=secret;
oAuth_token.AccessTokenSecret=getTokens.TokenSecret;
TwitterResponse tweets=TwitterTimeline.UserTimeline(oAuth_令牌);
foreach(tweets.ResponseObject中的var tweet)
{
回复。写(tweet.Text);
}
//更新(oAuth_令牌,“hello”);
}
我该怎么做?
谢谢

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

首先,您需要用户的AccessToken。您可以使用

var requestToken = OAuthUtility.GetRequestToken("consumerKey", "consumerSecret", "your return url").Token;
Response.Redirect(OAuthUtility.BuildAuthorizationUri(requestToken, true).AbsoluteUri);
这应该要求您登录到Twitter。然后返回到已设置的返回url,查询字符串中包含oauth_令牌和oauth_验证器。这些是AccessToken

现在,您可以使用这些令牌通过

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

它似乎可以很好地用于发布,但当尝试使用您提供的代码检索时间线时,我会遇到以下错误:
反序列化对象时出现意外标记:StartObject。路径“[1]”,第1行,位置1864。
/Twitterizer使用Json.Net库解析Twitter返回的Json。似乎有一个问题,其他用户也在考虑。你有最新版本的Twitterizer2吗?你从哪儿弄来的?我从NuGet得到了我的,没有这个错误。谢谢。我通过nuget卸载并重新安装,错误似乎消失了,但现在它抛出此错误
对象引用未设置为对象实例。
在这行
foreach(tweets.ResponseObject中的var tweet)
表示您尚未初始化
tweets
。这行代码初始化tweets:
TwitterResponse tweets=TwitterTimeline.UserTimeline(授权令牌)这意味着ResponseObject仍然为空。没有可检索的推文。如果设置断点,可以检查tweets对象中的确切内容。
 foreach (var tweet in tweets.ResponseObject)
 {
      string tweetText = tweet.Text;
 }