2013-05-09 3 views
0

Я написал небольшой фрагмент кода и не могу решить, где я ошибаюсь. Все, что я хочу сделать, это выполнить поиск в twitter с помощью tweetsharp и вернуть результаты.Tweetsharp Функция поиска

Вот код:

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(); 
} 

ответ

0

Я делаю то же самое в моем WP7 приложение, здесь это какой-то код, который работает для меня (у вас, кажется, есть часть auth ok. Я использую делегатов в вызове метода asynch. Проверьте ответ поиска 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())); 
     } 
    }); 
0

, что ваша проблема? что не работает?

Насколько я вижу, у вас есть какой-то дополнительный код, который вам не нужен, но он должен работать с этим:

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(); 

}

Смежные вопросы