Intercom.io API list/listBy/find 在响应正文中仅返回 50 个用户

Posted

技术标签:

【中文标题】Intercom.io API list/listBy/find 在响应正文中仅返回 50 个用户【英文标题】:Intercom.io API list/listBy/find only returning 50 users in response body 【发布时间】:2016-10-02 21:35:09 【问题描述】:

intercom-node https://github.com/intercom/intercom-node 的文档说我可以使用 client.users.list 或 client.users.listBy 或 client.users.find 访问我的用户数据。

问题是我在响应对象的正文中只获得了 50 个用户(即 resp.body.users.length 为 50),我需要所有用户。有谁知道如何查询 API 以从 intercom.io 应用程序中获取所有用户?

var Intercom = require('intercom-client')
var client = new Intercom.Client('<APP ID>', '<API KEY>')

client.users.list( function(err, resp)  
    console.log(resp.body.users.length)
)

【问题讨论】:

听起来他们默认分页/限制。这可能对您有帮助 - github.com/intercom/intercom-node#pagination 【参考方案1】:

使用当前库版本2.11.2 可以通过指定页码并使用.listBy 或在使用.list 后使用分页对象https://github.com/intercom/intercom-node#pagination 来检索下一页(下面的演示代码)

var Intercom = require('intercom-client');
var client = new Intercom.Client( token: TOKEN );

client.users.listBy(page: 1, printDetails);
client.users.listBy(page: 2, printDetails);

client.users.list(printDetailsAndGetNextPage);
client.users.listBy(page: 1, printDetailsAndGetNextPage);

function printDetails(d)
    var output = d.body;
    console.log("Page: " + output.pages.page + " out of " + output.pages.total_pages);


function printDetailsAndGetNextPage(d)
    var output = d.body;
    console.log("Page: " + output.pages.page + " out of " + output.pages.total_pages);
    if(output.pages.page < output.pages.total_pages) 
        console.log("Getting next page...");
        client.nextPage(output.pages, printDetails);
    
    else 
        console.log("No more pages left");
    


【讨论】:

以上是关于Intercom.io API list/listBy/find 在响应正文中仅返回 50 个用户的主要内容,如果未能解决你的问题,请参考以下文章

JAVA-初步认识-常用对象API(集合框架-List集合的常用方法)

对讲机是不是支持新的GCM?

使用流API将arraylist添加到arraylist

proxyTable

Java11新特性 - 新加一些实用的API

stream操作常用API 示例详解