4

特定のグループからすべてのメッセージを取得しようとしています。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 を超えて変更しようとしましたが、機能していないようです。

この問題はレート制限によるものですか。そうでない場合、何が問題ですか?

4

3 に答える 3

7

Yammers 開発者ドキュメントの公式ドキュメント


メッセージ - メッセージの表示

エンドポイント:

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 エンドポイントは同様の構造を返し、次のクエリ パラメータをサポートします。

old_than - 数値文字列として指定されたメッセージ ID より古いメッセージを返します。これは、メッセージのページ付けに役立ちます。たとえば、現在 20 件のメッセージを表示していて、最も古いメッセージの番号が 2912 である場合、リクエストに「?older_than=2912」を追加すると、表示されているメッセージより前の 20 件のメッセージを取得できます。

newer_than - 数値文字列として指定されたメッセージ ID よりも新しいメッセージを返します。これは、新しいメッセージをポーリングするときに使用する必要があります。メッセージを表示していて、返された最新のメッセージが 3516 である場合は、パラメーター「?newer_than=3516」を使用してリクエストを行い、既にページにあるメッセージの重複コピーを取得しないようにすることができます。

threaded=[真 | extended] - threaded=true は、各スレッドの最初のメッセージのみを返します。このパラメーターは、折りたたまれたメッセージ スレッドを表示するアプリを対象としています。threaded=extended は、Yammer Web インターフェイスの既定のビューで表示されるように、スレッド スターター メッセージを、最近アクティブなメッセージと最新の 2 つのメッセージの順に返します。

limit - 指定された数のメッセージのみを返します。threaded=true および threaded=extended で機能します。


GET要求で設定できる制限パラメーターに注意してください。このドキュメントが正しければ (私は Yammer 開発者ではありませんが、使用しています)、このドキュメントに基づいて実行できるはずです。

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

それは理論上ですが、ドキュメントを読んで、検索に関するセクションがあります。

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 件のメッセージで立ち往生していると思います。

お役に立てれば。

于 2013-12-12T08:31:24.277 に答える
0

後続のページを再帰的にリクエストすることで解決しました。

応答が空になるまで page パラメータを増やすか、プロパティ meta.older_available が false になるまで old_than パラメータを更新します。

于 2014-04-11T07:00:04.380 に答える