【问题标题】:Yammer JSON Feed returning only 20 messagesYammer JSON 提要仅返回 20 条消息
【发布时间】:2013-12-12 08:22:21
【问题描述】:

我正在尝试获取来自特定组的所有消息。我收到了 json 反馈。唯一的问题是,它只返回 20 条消息。这是设置为默认值还是什么。有没有什么方法可以在发出请求时指定我是否想要所有消息,默认情况下只需要 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 次通知电话。具体的速率限制可能会发生变化,但遵循以下指南将确保您的应用不会被阻止。>>

我尝试过使用limit作为参数将消息数量更改为20以上。但它似乎不起作用?

这个问题是因为速率限制吗?如果不是,有什么问题?

【问题讨论】:

  • 我们怎么知道?我们没有什么可看的,你做的。
  • 我无法上传包含私人公司信息的 json 文件 bcoz。我应该在什么主题上提供更多细节?请告诉

标签: yammer


【解决方案1】:

来自Yammers Developer documentation的官方文档


消息 - 查看消息

端点:

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 Web 界面中看到的内容。

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”发出请求,以确保您不会获得页面上已有消息的重复副本。

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

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


注意到您可以在 GET 请求中设置的 limit 参数 - 因此,如果它是正确的(我不是 Yammer 开发人员,但我确实使用它),那么根据此文档,您应该能够去做

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

理论上是这样,但通读文档时,有一个关于 Search 的部分有

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

这对我说,他们只能返回 20 个结果。

更新

在使用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 条消息”

这告诉我他们最多只能返回 20 条消息。所以我认为您一次只能收到 20 条消息。

希望这会有所帮助。

【讨论】:

【解决方案2】:

你需要使用参数: 消息 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.

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

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

示例:GET https://www.yammer.com/api/v1/messages.json?older_than=2912 而较旧的可以是消息编号 20 的 ID,依此类推,您可以得到 20 乘以 20

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      相关资源
      最近更新 更多