1

我正在创建一个小程序来获取使用 C# 和 instasharp 的 instagram 用户关注列表。下面的代码将为我提供前 50 个。我相信我必须使用分页选项来获取下一个 url 才能进入下一页。那就是我卡住的地方。如何使用分页来遍历所有关注的用户?

var config = new InstaSharp.InstagramConfig("api", "oauth", "xxxxxx", "xxxxxxx", "xxxxxx");

var config1 = new InstaSharp.Endpoints.Relationships.Unauthenticated(config);
var result = config1.Follows(000000);

dynamic dyn = JsonConvert.DeserializeObject(result.Json);
foreach (var data in dyn.data)
{
    listBox1.Items.Add(data.username);
}
4

1 回答 1

2

根据我在这里的回复:https ://stackoverflow.com/a/25139236/88217

如果您查看InstaSharp github上的单元测试,您可以看到如何使用分页的示例:

    public async Task Follows_NextCursor()
    {
        //This test will fail if testing with an account with less than one page of follows
        var result = await relationships.Follows();
        result = await relationships.Follows(457273003/*ffujiy*/, result.Pagination.NextCursor);
        Assert.IsTrue(result.Data.Count > 0);
    }

如果您想遍历并获取所有这些,我希望您执行以下操作:

int userID = 000000;
var result = await relationships.Follows(userID);

while(result.Data.Count > 0)
{
  dynamic dyn = JsonConvert.DeserializeObject(result.Json);
  foreach (var data in dyn.data)
  {
    listBox1.Items.Add(data.username); 
  }

  result = await relationships.Follows(userID, result.Pagination.NextCursor)
}

因为此代码使用await,您必须将该方法标记为async,有关其含义的更多信息,我建议查看async/await 关键字,可以在Stephen Cleary 的博客中找到一个很好的介绍

于 2014-08-05T17:15:55.020 回答