我写了一小段代码,找不出哪里出了问题。我想做的就是用tweetsharp在twitter上进行搜索,然后返回结果。
代码如下:
protected void Page_Load(object sender, EventArgs e){
_consumerKey = ConfigurationManager.AppSettings["ConsumerKey"];
_consumerSecret = ConfigurationManager.AppSettings["ConsumerKey"];
_accessToken = ConfigurationManager.AppSettings["accessToken"];
_accessTokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"];
TwitterClientInfo twitterClientInfo = new TwitterClientInfo();
twitterClientInfo.ConsumerKey = _consumerKey;
twitterClientInfo.ConsumerSecret = _consumerSecret;
TwitterService service = new TwitterService(twitterClientInfo);
//var service = GetAuthenticatedService();
OAuthRequestToken requestToken = service.GetRequestToken();
requestToken.OAuthCallbackConfirmed = true;
requestToken.Token = _accessToken;
requestToken.TokenSecret = _accessTokenSecret;
Uri authUrl = service.GetAuthenticationUrl(requestToken);
service.AuthenticateWith(_accessToken, _accessTokenSecret);
var tweets = service.Search(new SearchOptions { Q = "#MetGala", Count = 100 });
if (tweets != null)
{
foreach (var tweet in tweets.Statuses)
{
System.Diagnostics.Debug.WriteLine("{0} says '{1}", tweet.User.ScreenName, tweet.Text);
}
}
else
{
System.Diagnostics.Debug.WriteLine("FAIL");
}
FacebookFeed();
}发布于 2013-05-13 23:05:24
我在我的WP7应用程序中做了同样的事情,这里有一些代码可以为我工作(你看起来身份验证部分是ok的。我在异步方法调用中使用委托。检查twitter搜索响应,你可能会在那里看到你的错误:
_twitterService = (App.Current as App).Twitter;
var searchOptions = new SearchOptions { Q = _hashTag.Name, IncludeEntities = false, Resulttype = _twitterSearchResultType };
if (_returnedResultsCount != null)
searchOptions.Count = _returnedResultsCount;
_twitterService.Search(searchOptions, (twitterSearchResult, twitterSearchResponse) =>
{
try
{
if (twitterSearchResponse.StatusCode == HttpStatusCode.OK)
{
using (MemoryStream ms = new MemoryStream())
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(IEnumerable<TwitterStatus>));
ser.WriteObject(ms, twitterSearchResult.Statuses);
byte[] data = ms.ToArray();
result(new LoadRequestResult(new MemoryStream(data)));
}
}
else
{
result(new LoadRequestResult(new MemoryStream()));
}
}
catch
{
result(new LoadRequestResult(new MemoryStream()));
}
});发布于 2013-05-13 22:57:15
你在这里有什么问题?什么不起作用?
据我所知,您有一些不需要的额外代码,但它应该可以使用以下代码:
protected void Page_Load(object sender, EventArgs e){
_consumerKey = ConfigurationManager.AppSettings["ConsumerKey"];
_consumerSecret = ConfigurationManager.AppSettings["ConsumerKey"];
_accessToken = ConfigurationManager.AppSettings["accessToken"];
_accessTokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"];
TwitterClientInfo twitterClientInfo = new TwitterClientInfo();
twitterClientInfo.ConsumerKey = _consumerKey;
twitterClientInfo.ConsumerSecret = _consumerSecret;
TwitterService service = new TwitterService(twitterClientInfo);
service.AuthenticateWith(_accessToken, _accessTokenSecret);
var tweets = service.Search(new SearchOptions { Q = "#MetGala", Count = 100 });
if (tweets != null)
{
foreach (var tweet in tweets.Statuses)
{
System.Diagnostics.Debug.WriteLine("{0} says '{1}", tweet.User.ScreenName, tweet.Text);
}
}
else
{
System.Diagnostics.Debug.WriteLine("FAIL");
}
FacebookFeed();}
https://stackoverflow.com/questions/16458721
复制相似问题