2013-12-12 52 views
3

我试图从特定组中获取所有消息。我得到了json反馈。唯一的问题是,它只返回20条消息。这是默认设置吗?有什么办法可以在做请求的时候,我可以指定我是否想要所有的消息,默认情况下只有20个,甚至在开始和结束日期之间发布消息?Yammer JSON Feed只返回20条消息

我RESTAPI电话是:

https://www.yammer.com/api/v1/messages/in_group/[id].json

从Yammer的开发者文档 <

自动完成:10秒内发出10次请求。

消息:30秒内发出10次请求。

通知:30秒内发出10次请求。

所有其他资源:10秒内发出10次请求。

这些限制是独立的,例如,在同样的30秒内,您可以发出10条消息呼叫和10条通知呼叫。具体的速率限制可能会改变,但遵循下面的指导方针将确保您的应用程序不会被阻止。>>

我已经尝试使用限制作为参数来更改超过20个消息的数量。但它似乎并不要工作?

这是因为速率限制的问题。如果不是,问题是什么?从Yammers Developer documentation


+0

我们怎么知道得到20?我们没有什么可以看的,你已经做了。 – MichaelP

+0

我不能上传包含私人公司信息的json文件bcoz。我应该给什么话题更多的细节?请告诉 – Aakansha

回答

6

正式文件

消息 - 查看邮件

终点:

1)用户(其访问令牌的所有公共信息被用来进行API调用从此以后简称当前用户)Yammer网络。对应于Yammer Web界面中的“所有”对话。

GET https://www.yammer.com/api/v1/messages.json 

2)用户的提要,根据他们在“跟随”和“顶部”对话之间进行的选择。

GET https://www.yammer.com/api/v1/messages/my_feed.json 

3)对应于“顶级”的对话,这是绝大多数用户会在Yammer的网络界面中看到用户的算法饲料。

GET https://www.yammer.com/api/v1/messages/algo.json 

4)“跟随”馈送是涉及用户所关注的人,组和话题的对话。

GET https://www.yammer.com/api/v1/messages/following.json 

5)用户发送的所有消息。 /api/v1/messages/from_user/logged-in_user_id.format的别名。

GET https://www.yammer.com/api/v1/messages/sent.json 

6)用户收到的私人信息。

GET https://www.yammer.com/api/v1/messages/private.json 

7)用户收到的所有消息。

GET https://www.yammer.com/api/v1/messages/received.json 

参数:

的消息API端点返回一个相似的结构和支持以下查询参数:

older_than - 返回比指定为数字字符串消息ID旧邮件。这对分页消息很有用。例如,如果您目前正在查看20封邮件,而最早的邮件是2912号邮件,那么您可以在请求中附加“?older_than = 2912”,以便在您看到的邮件之前获取20条邮件。

newer_than - 返回比指定为数字字符串的消息ID更新的消息。这应该在轮询新消息时使用。如果您正在查看消息,并且最近返回的消息是3516,则可以使用参数“?newer_than = 3516”发出请求,以确保您的页面上已经没有重复的消息副本。

threaded = [true |扩展] - threaded = true将只返回每个线程中的第一条消息。此参数适用于显示消息线程折叠的应用程序。 threaded = extended将按照最近活动的顺序以及最近两条消息的顺序返回线程启动器消息,因为它们在Yammer Web界面的默认视图中查看。

限制 - 仅返回指定数量的消息。适用于threaded = true和threaded = extended。


注意到了限制参数,你可以在你的GET请求设置 - 所以在此基础上的文档,如果它是正确的(我不是一个Yammer的开发者,但我不使用它),你应该能够做

https://www.yammer.com/api/v1/messages.json?limit=50 

也就是说在理论上,而且可通过文档阅读上有搜索

节0页 - 每个页面只返回每种类型的20个结果,但每个查询返回一个总计数。页面= 1(默认)将返回项目1-20,页面= 2将返回项目21-30等。

这对我说,他们被限制为20个结果返回。

UPDATE

后与https://www.yammer.com/api/v1/messages.json?limit=50测试这一点,它没有返回50消息,但这样做https://www.yammer.com/api/v1/messages.json?limit=5通过文档阅读了一下之后也将返回唯一5消息我会说,Yammer的限制消息的数量来20更多我读

例如,如果您当前正在查看20条消息,而最早的是2912号,则可以在请求中附加“?older_than = 2912”以获取20条消息s之前你看到的那些“

这对我说,他们只会返回最多20个。所以我认为你一直在20个消息卡住。

希望这会有所帮助。

+0

https://www.yammer.com/api/v1/messages.json?limit=50和https://www.yammer.com/api/v1/messages.json?threaded=true&limit=50,都仍然只能返回20条消息。 – Aakansha

+1

我会说他们限制你20条消息,然后,如果你将50改为20以下的任何东西,它将返回这个数量的消息。查看更新 – Popeye

0

我通过以递归方式请求后续页面来解决问题。

您可以简单地增加页面参数,直到响应为空,或更新older_than参数,直到属性meta.older_available为false。

1

您需要使用参数: 这些消息API端点返回一个类似的结构,并支持以下查询参数:

older_than - Returns messages older than the message ID specified as a numeric string. This is useful for paginating messages. For example, if you’re currently viewing 20 messages and the oldest is number 2912, you could append “?older_than=2912″ to your request to get the 20 messages prior to those you’re seeing. 

newer_than - Returns messages newer than the message ID specified as a numeric string. This should be used when polling for new messages. If you’re looking at messages, and the most recent message returned is 3516, you can make a request with the parameter “?newer_than=3516″ to ensure that you do not get duplicate copies of messages already on your page. 

线程= [真|扩展] - threaded = true将只返回每个线程中的第一条消息。此参数适用于显示消息线程折叠的应用程序。 threaded = extended将按照最近活动的顺序以及最近两条消息的顺序返回线程启动器消息,因为它们在Yammer Web界面的默认视图中查看。

限制 - 仅返回指定数量的消息。适用于threaded = true和threaded = extended。

例如:年长GET https://www.yammer.com/api/v1/messages.json?older_than=2912 而可以是消息编号20的ID等等,你可以通过20