Yammer からデータを読み取る ASP.NET Web アプリケーションに取り組んでいます。「ホーム」ネットワークからの認証とメッセージの取得に成功しました。
ここで、別のネットワークに切り替えて、そこからメッセージを取得したいと考えています。私はすべてのドキュメントを読みましたが、具体的には次のようなネットワークセクションを読みました。
異なる Yammer ネットワーク間でのユーザーの切り替えを容易にします。すべての Yammer Web 要求には、ネットワーク コンテキストを示すために、URL ( https://www.yammer.com/network_permalink/resource_path ) にネットワーク パーマリンクが含まれています。API リクエストは、ユーザーとネットワークの組み合わせごとに異なる OAuth トークンを使用します。
エンドポイント: 現在のユーザーがアクセスできるネットワークのリストを返します。included_suspended パラメーターをサポートします。
GET https://www.yammer.com/api/v1/networks/current.json
では、ユーザーとネットワークの組み合わせに対応するトークンを取得する必要があります。完全。そのエンドポイントにGET
リクエストを送信するとnetworks/current.json
、現在のユーザーがアクセスできるすべてのネットワークが取得されます。偉大な。さて、トークンはどこにありますか?それらはjson応答にはありません。
そう...
- サーバー側コード経由で Yammer REST API を使用して外部ネットワークからメッセージを取得するにはどうすればよいですか?
- 外部ネットワークのトークンを取得するにはどうすればよいですか?
アップデート
ブライアンの提案に従って:
- 認証ヘッダーで現在のトークンを
GET https://www.yammer.com/api/v1/oauth/tokens.json
渡します (Bearer: xxxxxxxxx
) - これは、私が使用しているユーザーがいる 2 つのネットワークを返します。ホームと外部です。私が気づいたことの 1 つは、
user_id
ネットワークごとに異なることです。user_id
それが別のユーザーなのか、同じユーザーがネットワークごとに異なるのかはわかりません。 - 今、他のネットワークからメッセージを取得したいので、
GET https://www.yammer.com/api/v1/messages.json
しかし、今はtokens.json
エンドポイントから取得した外部ネットワークのトークンを使用しています。しかし、次の応答が得られます。
{
"response":
{
"stat":"fail",
"code":17,
"message":"Attempt to access a protected resource failed."
}
}
繰り返しになりますが、ドキュメントによると、エンドポイントは偽装用であり、有料の Yammer ネットワークで確認済みの管理者ユーザーに制限されています。
私は本当に手がかりがありません。
更新 2
上記の更新プログラムで説明されているプロセスは、Yammer アプリを作成したユーザー (私) に対して機能します。使っています。私がそのネットワークにいない限り、他のユーザーは外部ネットワークからメッセージを取得できません。どうやら私のトークンを使用しているようですが、API にバグがない限り、それは不可能です。