【发布时间】:2016-03-15 15:40:04
【问题描述】:
我正在尝试使用 TweetSharp API 从特定标签中获取所有推文。我正在为此使用以下代码
public ActionResult AddTwitterDataTop(TwitterData objTwitterData)
{
try
{
var service = new TwitterService(ConsumerKey, ConsumerSecret);
service.AuthenticateWith(AccessToken, AccessTokenSecret);
var tweets = service.Search(new SearchOptions { Q = "#MisuseOfRapeLaw", Count = 100, Resulttype = TwitterSearchResultType.Recent });
IEnumerable<TwitterStatus> status = tweets.Statuses;
foreach (var item in status)
{
var qry = (from s in ObjEdbContext.ObjTwitterDatas where s.Text == item.Text && s.ScreenName == item.User.ScreenName select s).FirstOrDefault();
if (qry != null) continue;
objTwitterData.ScreenName = item.User.ScreenName;
objTwitterData.UserName = item.User.Name;
objTwitterData.Text = item.Text;
objTwitterData.RetweetCount = item.RetweetCount;
objTwitterData.FavouritesCount = item.User.FavouritesCount;
objTwitterData.ProfileImageUrl = item.User.ProfileImageUrl;
objTwitterData.TimeStam = item.CreatedDate;
objTwitterData.RetweetUrlId = "https://twitter.com/intent/retweet?tweet_id=" + item.Id;
objTwitterData.ReplyaUrlId = "https://twitter.com/intent/tweet?in_reply_to=" + item.Id;
objTwitterData.FavoriteUrlId = "https://twitter.com/intent/favorite?tweet_id=" + item.Id;
objTwitterData.IsValid = "Pending";
ObjEdbContext.ObjTwitterDatas.Add(objTwitterData);
ObjEdbContext.SaveChanges();
ModelState.Clear();
}
}
catch (Exception e)
{
ViewBag.ErrorMessage = "Some exception occured" + e;
return RedirectToAction("Index");
}
return RedirectToAction("Index");
}
有时它可以正常工作,有时在此行之后会出现以下异常
var tweets = service.Search(new SearchOptions { Q = "#MisuseOfRapeLaw", Count = 100, Resulttype = TwitterSearchResultType.Recent });
JSON 整数 2265545852 对于 Int32 来说太大或太小。路径 'statuses[19].in_reply_to_user_id',第 1 行,位置 60279。
如果我将计数更改为 18 而不是 100,它会正常工作。
上面的代码只返回 100 个混合了推文和转发推文的数据。 有没有办法实现这些
- 获取所有推文(推文和转发推文的混合)而不是 100 条。
- 使用过滤器仅获取推文(不转发推文)。
SO 中有很多与此问题类似的问答,但没有一个真正帮助过我。
【问题讨论】:
标签: c# twitter tweetsharp