とりあえずメモ書き。
まだ制限はありますが、Graph APIでWorkplaceに投稿できます。
参考) Graph API for Workplace
https://developers.facebook.com/docs/workplace/custom-integrations/overview
アクセストークンとコミュニティIDの取得方法
- Admin権限を持っているユーザーでログイン
- 社内ダッシュボードから、設定メニュー(左メニューの一番下)を開く
- 基本設定(翻訳がメニューと異なっている)から、外部アプリでメンバーを同期にチェックを入れる。その下のアクセストークンとコミュニティIDを使う。
メンバーIDとメンバーアクセストークン(impersonate_token)の取得方法
{member-id}エンドポイントに対して、GETリクエストすることでメンバーアクセストークンが取得できる 。
まず、上記で取得したアクセストークンを使って、メンバIDを取得する。
curl -X GET "https://graph.facebook.com/<コミュニティID>/members?access_token=<アクセストークン>"
{
"data": [
{
"name": "Masaki Kubomura",
"id": "100000000000001",
"administrator": true
},
{
"name": "Taro Yamada",
"id": "100000000000002",
"administrator": true
}
],
"paging": {
"cursors": {
"before": "MTAwMDEzODUxNjc3Mzk2",
"after": "MTAwMDEzODkyNTU5ODQ4"
}
}
}
次に、メンバIDに対して、GETリクエストして、メンバーアクセストークンを取得する。
curl -X GET "https://graph.facebook.com/<メンバーID>?fields=impersonate_token&access_token=<アクセストークン>"
{"impersonate_token":"<メンバーアクセストークン>","id":"100000000000001"}
グループIDの取得方法
curl -X GET "https://graph.facebook.com/<コミュニティID>/groups?fields=id,name&access_token=<アクセストークン>"
{
"data": [
{
"id": "200000000000001",
"name": "Test Group"
},
{
"id": "200000000000002",
"name": "Random"
}
],
"paging": {
"cursors": {
"after": "MTU5MTA1OTU5Nzg2Njc5Ng==",
"before": "MTgwMDk1Njc0Njg2MDQ3NQ=="
},
"next": "https://graph.facebook.com/v2.8/<コミュニティID>/groups?fields=id,name&icon_size=16&access_token=<アクセストークン>&limit=25&after=MTU5MTA1OTU5Nzg2Njc5Ng%3D%3D"
}
}
投稿する
curl -X POST "https://graph.facebook.com/<メンバID or グループID/feed?message=<URLEncode(UTF-8)テキスト>&access_token=<アクセストークン or メンバーアクセストークン>
注意) グループに投稿する場合、そのグループに所属しているメンバーのメンバーアクセストークンで投稿する。