C# 如何使用twitterizer2获取用户时间线
我正在使用twitterizer2尝试获取用户最近的几条tweet,然后使用oAuth(而不是用户屏幕名称)将它们写入一个表中,但我对twitterizer是新手,所以我不知道如何做到这一点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
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;
}