【问题标题】:Error while fetching tweets using TweetSharp API使用 TweetSharp API 获取推文时出错
【发布时间】: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 个混合了推文和转发推文的数据。 有没有办法实现这些

  1. 获取所有推文(推文和转发推文的混合)而不是 100 条。
  2. 使用过滤器仅获取推文(不转发推文)。

SO 中有很多与此问题类似的问答,但没有一个真正帮助过我。

【问题讨论】:

    标签: c# twitter tweetsharp


    【解决方案1】:

    当前发布到 Nuget 的 TweetSharp 版本不支持长整数 id 用于许多事物(用户等)。如果您的搜索结果返回来自具有大 id 的用户的推文,则会因此错误而失败。

    TweetSharp 的 nuget 存储库中的源代码确实包含对此的修复,因此如果您能够自己获取和构建代码并引用您构建的二进制文件,那么问题应该会消失。

    如果您不想这样做,则需要使用 TweetSharp 的其中一个分支(不再维护原始 TweetSharp)。 Nuget TweetMoaSharp(我目前主要维护)或 TweetSharp-Alternate 上有一些替代包。或者,您可以更改为完全不同的库,例如 LinqToTwitter。

    【讨论】:

      猜你喜欢
      • 2016-08-09
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2015-09-13
      • 2015-08-14
      • 1970-01-01
      相关资源
      最近更新 更多