0

我们正在尝试接收有关客户的信息,我们得到的只是 20 个结果,也想搜索下一页。应该循环遍历所有页面直到为空,但在使用网络资源管理器时不能创建循环,或者?

应该粘贴什么值来接收所有结果?(将 pageToken 字段留空只会给我们 20 个结果。 在此处输入图像描述

https://developers.google.com/admin-sdk/reseller/v1/reference/subscriptions/list#try-it

4

3 回答 3

3

您的问题是您正在指定fields=,但未将其包含nextPageToken为字段之一。这就是响应中没有 nextPageToken 的原因。通过添加nextPageToken(或完全省略字段 (v2) 或设置fields=*(v3)),您的第一页结果将包含一个 nextPageToken,您将提供它作为pageToken下次调用的值。冲洗,重复直到你得到没有 nextPageToken 的响应。对于您的第一次通话,pageToken 当然是空白的。

于 2015-04-01T14:24:02.897 回答
0

为了获得超过 20 个结果,您必须在“maxResults”参数中提供一些值。

maxResults(unsigned integer):检索大列表时,maxResults 是每页的最大结果数。nextPageToken 值将您带到下一页。默认值为 20。可接受的值为 1 到 100,包括 1 到 100。

请查看此页面以供参考:https ://developers.google.com/admin-sdk/reseller/v1/reference/subscriptions/list

希望有帮助!

于 2015-03-31T20:42:17.987 回答
0

从一个约翰到另一个...

我没有直接调用 REST HTTP 端点,但是在使用G Suite 目录 API 客户端库时,我需要遍历多个页面以接收所有结果。

这是我使用的模式。G Suite Reseller API将非常相似。

/// <summary>
/// List all Members in a Domain Group.
/// <param name="service">DirectoryService object (Google Directory API)</param>
/// <returns>Collection of Member emails</returns>
/// </summary>
public IEnumerable<string> ListGroupMembers(DirectoryService service)
{
    // Set Group key (email address of the Group or id of the Group)
    var groupKey = "email-for-google-group@domain-name.com";

    // Define parameters of request (Group email)
    MembersResource.ListRequest request = service.Members.List(groupKey);

    // Sadly, this won't work
    request.MaxResults = int.MaxValue;

    // And the max page size of response is ONLY 200!

    // So you have to check for the next page token
    // and execute another request if there is one

    do
    {
        // Get Members response for this Group
        Members response = request.Execute();

        // Return the emails in this response page
        foreach (var member in response.MembersValue)
        {
            yield return member.Email;
        }

        // Get next page token
        request.PageToken = response.NextPageToken;

        // Continue loop if next page token is not null
    } while (!string.IsNullOrEmpty(request.PageToken));
}
于 2018-11-06T05:46:33.953 回答