C# Tweetsharp搜索功能
我已经写了一小段代码,不知道哪里出错了。我只想用tweetsharp在twitter上搜索并返回结果 代码如下:C# Tweetsharp搜索功能,c#,asp.net,tweetsharp,C#,Asp.net,Tweetsharp,我已经写了一小段代码,不知道哪里出错了。我只想用tweetsharp在twitter上搜索并返回结果 代码如下: protected void Page_Load(object sender, EventArgs e){ _consumerKey = ConfigurationManager.AppSettings["ConsumerKey"]; _consumerSecret = ConfigurationManager.AppSettings["ConsumerKey"];
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();
}
你这里有什么问题?什么不起作用 据我所知,您有一些不需要的额外代码,但它应该与此配合使用:
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();
}我在我的WP7应用程序中也做了同样的事情,下面是一些适合我的代码(您的auth部分似乎没有问题。我在异步方法调用中使用委托。检查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()));
}
});
\u twitterService=(App.Current作为App.Twitter;
var searchOptions=newsearchoptions{Q=_hashTag.Name,IncludeEntities=false,Resulttype=_twitterSearchResultType};
如果(_returnedResultsCount!=null)
searchOptions.Count=\u returnedResultsCount;
_搜索(搜索选项,(twitterSearchResult,twitterSearchResponse)=>
{
尝试
{
if(twitterSearchResponse.StatusCode==HttpStatusCode.OK)
{
使用(MemoryStream ms=new MemoryStream())
{
DataContractJsonSerializer ser=新的DataContractJsonSerializer(typeof(IEnumerable));
ser.WriteObject(ms、twitterSearchResult.Status);
字节[]数据=ms.ToArray();
结果(新加载请求结果(新内存流(数据));
}
}
其他的
{
结果(new LoadRequestResult(new MemoryStream());
}
}
抓住
{
结果(new LoadRequestResult(new MemoryStream());
}
});