Как использовать курсоры для навигации по коллекции данных Twitter, очищенных с помощью вызова API Twitter

1

Как я могу использовать курсоры для итерации при вызове twitter api? Я пытаюсь получить местоположение моих подписчиков Twitter, используя вызов GET followers/list API. Я сделал все связанные с аутентификацией вещи в своем приложении.

Это то, что я сделал до сих пор

            var resource_url = "https://api.twitter.com/1.1/followers/list.json";
            var cursor = "-1";
            var api_path = resource_url;

            do {
                var url_with_cursor = api_path + "&cursor=" + cursor; 

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url_with_cursor);
                request.Headers.Add("Authorization", authHeader);
                request.Method = "GET";
                request.ContentType = "application/x-www-form-urlencoded";

                WebResponse response = request.GetResponse();

                string result = new StreamReader(response.GetResponseStream()).ReadToEnd();

                JObject j = JObject.Parse(result);                    
                cursor = j["next_cursor_str"].ToString();
                Console.WriteLine(cursor);

            }
            while ( cursor != "0" );

Но когда я запускаю вышеуказанный код, я получаю исключение: "Удаленный сервер возвратил ошибку: (401)" Несанкционированный ". в следующей строке моего кода:

WebResponse response = request.GetResponse();

Это означает, что с ответом что-то не так.

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

  • 0
    That means there's something wrong with the response. - Да, это то, что указывает на исключение. Так что же является исключением?
  • 0
    о, очень жаль! Я не положил это! я буду редактировать пост и исключение говорит: «Удаленный сервер возвратил ошибку: (401) Несанкционированный»
Показать ещё 6 комментариев
Теги:
twitter

1 ответ

0
Лучший ответ

Twitter требует, чтобы вы аутентифицировали/авторизировали с помощью api, прежде чем вам удастся извлечь данные. Вам нужно будет выполнить их документацию, чтобы получить токен OAuth.

Кроме того, может быть проще использовать библиотеку-обертку вместо прямого перехода на твиттер. Twitter перечисляет несколько для.Net: https://dev.twitter.com/docs/twitter-libraries

Например, tweetSharp:

 using TweetSharp;

 // In v1.1, all API calls require authentication
 var service = new TwitterService(_consumerKey, _consumerSecret);
 service.AuthenticateWith(_accessToken, _accessTokenSecret);

 var tweets = service.ListTweetsOnHomeTimeline(
                      new ListTweetsOnHomeTimelineOptions());

 foreach (var tweet in tweets)
 {
     Console.WriteLine("{0} says '{1}'", tweet.User.ScreenName, tweet.Text);
 }
  • 0
    Еще раз спасибо. Я уже сделал аутентификацию в моем приложении. :) Я попробую использовать библиотеку-обертку. :)
  • 0
    я должен загрузить tweetsharp и включить все это в свой проект? у этого есть много вещей noh. : /
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню