如何使用游标导航使用twitter API调用抓取的twitter数据集合

时间:2014-08-26 13:59:11

标签: c# api twitter

如何通过twitter api调用使用游标进行迭代?我正在尝试使用GET followers/list API调用来获取我的Twitter粉丝的位置。我在我的应用程序中完成了所有与身份验证相关的事情。

这是我到目前为止所做的事情

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

这意味着,响应有问题。

除了developer site之外,我还没有在任何地方看到如何使用游标来导航集合来获取推特数据的正确例子。

1 个答案:

答案 0 :(得分:0)

Twitter要求您在允许提取数据之前使用api进行身份验证/授权。您需要按照他们的文档获取OAuth令牌。

此外,使用包装器库而不是直接转到twitter可能更容易。 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);
 }