yammer REST APIの使い方
yammerとは
皆さんはyammerをご存知でしょうか?
エンタプライズソーシャルと言われる企業内情報共有ツールです。
2012年にMicrosoftに買収されたのでご存じの方もいるのではないでしょうか。
ここ最近yammerのREST APIを弄っているので使い方を紹介したいと思います。
アプリケーション登録
REST API経由でyammerのデータを操作するにはまずアプリケーションの登録が必要です。
下記公式ドキュメントに手順が書いてあります。
https://developer.yammer.com/introduction/#gs-registerapp
アクセストークンを取得
次にAPIを実行する時の認証情報となるアクセストークンを取得します。
ここではサーバーサイドの認証フローで手順を説明します。
※クライアントサイドの認証フローに関しては下記公式ドキュメントを参照してください。
https://developer.yammer.com/authentication/#a-oauth2
1. Webブラウザに下記URLを入力します。
https://www.yammer.com/dialog/oauth?client_id=<クライアントID>&redirect_uri=<リダイレクト先URL>
client_id | アプリ登録時に発行されたクライアントID |
---|---|
redirect_uri | アプリ登録時に設定したリダイレクト先URL |
2. yammerの認証画面が表示されるのでアカウント情報を入力します。
3. yammerの認証が成功するとアプリの認可画面が表示されるので許可します。
4. リダイレクトされたURLから認可コードを取得します。
例)http://localhost/?code=GRxm2lr6HHtTtj8X6xLYQ
5. Webブラウザに下記URLを入力します。
https://www.yammer.com/oauth2/access_token.json?client_id=<クライアントID>&client_secret=<クライアントシークレット>&code=<4.で取得した認可コード>
client_id | アプリ登録時に発行されたクライアントID |
---|---|
client_secret | アプリ登録時に発行されたクライアンシークレット |
code | 認可コード |
6. 5のリクエストの結果、返されるレスポンス(JSON形式)に含まれるtokenプロパティの値がアクセストークンです。
[ { "user_id": ユーザーID, "network_id": ネットワークID, <途中省略> "network_name": ネットワーク名, "token": "xxxxxxxxxxxxxxxxxxxx", 以下省略 ・・・ } ]
API実行
アクセストークンが取得できればいよいよAPIの実行です。
ここでは現在のユーザーの情報を取得してみましょう。
それには下記URLにGETリクエストを送ります。
https://www.yammer.com/api/v1/users/current.json
この時、アクセストークンをHTTPのAuthorizationヘッダに指定します。
フォーマットは以下となります。
Key | Value |
---|---|
Authorization | Bearer アクセストークンの値 |
アクセストークンを指定していない場合やアクセストークンが無効な場合は
認証エラーとなるのでご注意ください。
GETリクエストのレスポンスの内容を見てみましょう。
{ "type": "user", "id": ユーザーID "network_id": ネットワークID, "state": "active", "guid": GUID, "job_title": null, "location": null, "significant_other": null, ・・・以下省略 }
無事にユーザーに関する情報が取得できました。
今回はAuthorizationヘッダに指定したアクセストークンに紐づくユーザーの情報を取得しましたが、アクセストークンの指定はほかのREST APIを実行する時にも必ず必要なので覚えておきましょう。
まぁ、処理を共通化しておけばいいだけのことです。