こんにちは! iOSアプリエンジニアの@takashi9314です。
弊社Favyでは社内チャットツールとして、
Workplace by Facebookを利用しています。
このWorkplaceはUIが基本的にはFacebookと全く同じということで、
いろいろな職種のメンバーが存在している弊社にはもってこいの利点があります。
ただし・・・
Slackみたいにサクッと通知!
的なことに非常に弱いです。
ただし方法はあるので、その調べた結果を綴ります。
Workplaceで通知
手順的には下記の通りになります。
- 管理者権限を持つアカウントでログイン
- 画面右上の「ダッシュボード」→サイドメニューの「統合」→ページ下部の「カスタムアプリを作成」からアプリを作成します。作成するアプリごとに権限や機能を変更する事ができます。
- 作成したアプリのアクセストークンをコピー
- コピーしたアクセストークンを用いて、WorkplaceGraphAPIを用いて投稿を行う。
指定したグループに投稿
まず投稿を行うにはグループIDが必要になります。
グループIDとは使用しているWorkplace上に作られた各々のグループに振り分けられたIDです。
APIを利用して取得することもできますが、単純にそのグループのトップ画面をブラウザで表示すると、
https://{あなたのWorkplaceのhost}/groups/{グループID}
上記のように簡単にグループのIDを知ることができます。
取得したグループIDを用いて
https://graph.facebook.com/{グループID}/feed?message={メッセージ}
上記のURLに対してPOSTでリクエストを送信すれば投稿が行なえます。
先程取得したトークンをヘッダーに付与する事をお忘れなく。
特定の人をタグ付けして投稿
特定の人をタグ付けする人には対象の人のWorkPlaceIDは必要になります。
上記でグループIDを取得したのと同じように、ユーザーのトップページのURLで
https://{あなたのWorkplaceのhost}/profile.php?id={WorkplaceID}
上記のようにユーザーのIDを知ることができます。
それを用いて、
https://graph.facebook.com/{グループID}/feed?message={メッセージ}+@[{WorkplaceID}]
上記のようなURLを作成してPOSTすれば投稿が行なえます。
こちらも先程取得したトークンをヘッダーに付与する事をお忘れなく。
さいごに
WorkplaceGraphAPIを利用して他にもメンバーの情報を取得したりグループを作成したりと様々な事ができますが、機能的には全く整っていません。
うちの会社ではこんな使い方してるよ〜!みたいなのあればコメントに是非ください^^
ほしい機能
- 名前やメールアドレスからメンバーを検索する機能
- 直接チャットに送信をする機能