Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 林克托维特。收藏夹-获取所有_C#_Api_Twitter_Linq To Twitter - Fatal编程技术网

C# 林克托维特。收藏夹-获取所有

C# 林克托维特。收藏夹-获取所有,c#,api,twitter,linq-to-twitter,C#,Api,Twitter,Linq To Twitter,我已经编写了获取一组用户收藏夹的代码,但是,不明显的是如何通过这些页面/光标来获取(比如)用户的第一组收藏夹。光标值始终为0且max/,因为ID为空。有没有办法使用LinqToTwitter实现这一点?对于收藏夹,您需要使用SinceID/MaxID遍历时间线。下面是一个例子: static async Task ShowFavoritesAsync(TwitterContext twitterCtx) { const int PerQueryFavCount =

我已经编写了获取一组用户收藏夹的代码,但是,不明显的是如何通过这些页面/光标来获取(比如)用户的第一组收藏夹。光标值始终为0且
max/,因为ID
为空。有没有办法使用LinqToTwitter实现这一点?

对于收藏夹,您需要使用SinceID/MaxID遍历时间线。下面是一个例子:

    static async Task ShowFavoritesAsync(TwitterContext twitterCtx)
    {
        const int PerQueryFavCount = 200;

        // set from a value that you previously saved
        ulong sinceID = 1; 

        var favsResponse =
            await
                (from fav in twitterCtx.Favorites
                 where fav.Type == FavoritesType.Favorites &&
                       fav.Count == PerQueryFavCount
                 select fav)
                .ToListAsync();

        if (favsResponse == null)
        {
            Console.WriteLine("No favorites returned from Twitter.");
            return;
        }

        var favList = new List<Favorites>(favsResponse);

        // first tweet processed on current query
        ulong maxID = favList.Min(fav => fav.StatusID) - 1;

        do
        {
            favsResponse =
                await
                    (from fav in twitterCtx.Favorites
                     where fav.Type == FavoritesType.Favorites &&
                           fav.Count == PerQueryFavCount &&
                           fav.SinceID == sinceID &&
                           fav.MaxID == maxID
                     select fav)
                    .ToListAsync();

            if (favsResponse == null || favsResponse.Count == 0) break;

            // reset first tweet to avoid re-querying the
            // same list you just received
            maxID = favsResponse.Min(fav => fav.StatusID) - 1;
            favList.AddRange(favsResponse);

        } while (favsResponse.Count > 0);

        favList.ForEach(fav => 
        {
            if (fav != null && fav.User != null)
                Console.WriteLine(
                    "Name: {0}, Tweet: {1}",
                    fav.User.ScreenNameResponse, fav.Text);
        });

        // save this in your db for this user so you can set
        // sinceID accurately the next time you do a query
        // and avoid querying the same tweets again.
        ulong newSinceID = favList.Max(fav => fav.SinceID);
    }
静态异步任务ShowFavoritesAsync(TwitterContext twitterCtx)
{
const int PerQueryFavCount=200;
//根据以前保存的值进行设置
ulong sinceID=1;
var favsResponse=
等待
(来自twitterCtx.Favorites中的fav)
其中fav.Type==FavoritesType.Favorites&&
fav.Count==perqueryavcount
选择fav)
.ToListAsync();
if(favsResponse==null)
{
WriteLine(“没有从Twitter返回收藏夹”);
返回;
}
var favList=新列表(favsResponse);
//当前查询中处理的第一条推文
ulong maxID=favList.Min(fav=>fav.StatusID)-1;
做
{
FAVS响应=
等待
(来自twitterCtx.Favorites中的fav)
其中fav.Type==FavoritesType.Favorites&&
fav.Count==perqueryavcount&&
fav.SinceID==SinceID&&
fav.MaxID==MaxID
选择fav)
.ToListAsync();
如果(favsResponse==null | | favsResponse.Count==0)中断;
//重置第一条tweet以避免重新查询
//和你刚收到的一样
maxID=favsResponse.Min(fav=>fav.StatusID)-1;
favList.AddRange(favsResponse);
}而(favsResponse.Count>0);
favList.ForEach(fav=>
{
if(fav!=null&&fav.User!=null)
控制台写入线(
“名称:{0},推特:{1}”,
fav.User.ScreenNameResponse,fav.Text);
});
//将其保存在数据库中,以便您可以为该用户设置
//自下一次执行查询时起
//避免再次查询相同的推文。
ulong newSinceID=favList.Max(fav=>fav.SinceID);
}
我写了一篇博客文章,解释了如何使用Twitter的时间线。它是为LINQ to Twitter的早期非异步版本编写的,但概念保持不变:

这是基于Twitter的指导,这是一个很好的阅读: