无法从Podio的API(应用程序)中获取所有商品。 C#

时间:2019-09-19 13:23:06

标签: c# api podio

我在.NET程序中使用Podio的API,并在C#代码中成功从Podio的App中抓取了项目。问题是我可以从我的Apps集合中抓取的物品数量有一个限制,我相信我的设置限制是30(而且我还有30多个物品)。

我希望能够获取App中的所有项目,而不是默认数量的30个项目。 我将显示一些代码:

下面,我将值硬编码到新的Podio对象中,我想对其进行身份验证,以便可以使用它(在这里工作正常)。

var podio = new Podio("Secret-Name", "Secret-Code");
podio.AuthenticateWithApp("Secret-Number", "Secret-Code");

下面,我在这里从应用程序中抓取项目,“ filteredItems.Total”确实返回集合中的最大项目数。

var filteredItems = podio.ItemService.FilterItems("Secret-Number");

下面的代码不会返回最大数量的项目,而只会返回默认数量。

foreach (var eachItem in filteredItems.Items)
{
                System.Diagnostics.Debug.WriteLine(eachItem.Title + " - " eachItem.ItemId +" ");
}

问题是,podio的方法无法读取集合中的最大项目数(由于某些默认的最大数量),或者foreach循环有最大限制。

谢谢您的帮助。

3 个答案:

答案 0 :(得分:2)

只需使用FilterOptions指定限制

请参见https://github.com/podio/podio-dotnet/blob/master/Source/Podio%20.NET/Services/ItemService.cs

中FilterItems方法的定义
public async Task<PodioCollection<Item>> FilterItems(int appId, FilterOptions filterOptions, bool includeFiles = false)
{
    filterOptions.Limit = filterOptions.Limit == 0 ? 30 : filterOptions.Limit;
    // ...
}

答案 1 :(得分:0)

是的,您是对的,端点是受速率限制的,默认为30个项目

在此处查看文档:{​​{3}}

源代码:https://developers.podio.com/doc/items/filter-items-4496747

下面的代码将此限制增加到100

var filterOptions = new FilterOptions()
{
        Limit = 100
};
var filteredItems = podio.ItemService.FilterItems(appId, filterOptions, false);

答案 2 :(得分:0)

了解如何解决我的问题

在我之前:

 var filteredItems = podio.ItemService.FilterItems("Secret-Number");

但是我们可以手动设置可以看到的项目数量(限制为500)

var filteredItems = podio.ItemService.FilterItems("Secret-Number", 500);