LANG SELRCT

コードを書く場所についてはこちら

2018年12月8日土曜日

WorkplaceのAPIで指定したグループに投稿したい(feed?message=)


Workplaceの指定したグループにAPIで投稿したくて試した方法です
ここではコード.gsにあるようにパラメータを付けてやります
var url = BASE_URL + groupId + '/feed?message=' + message;


関連記事

長いメッセージを投稿したい時はpayloadを使うとできるようです
(パラメータでは長すぎてエラーが出る)

integrationの設定について


前提
1. integrasionで「Manage group content」の Permissionがチェックされていて

2. 投稿したいGroupへのアクセスが設定されている



コード.gs
/************************************
ファイル>プロジェクトのプロパティ>スクリプトのプロパティ に保存したアクセストークンを取得して返す
************************************/
function getToken() {
  return PropertiesService.getScriptProperties().getProperty('api_token');
}

var BASE_URL = 'https://graph.facebook.com/';

/************************************
groupIdを指定して投稿する
************************************/
function postFeed(){
  var message = 'Hello!';
  var encodeMessage = encodeURIComponent(message);
  var groupId = 'GROUP_ID';
  var url = BASE_URL + groupId + '/feed?message=' + encodeMessage;
  var options = getPostOptions();
  var response = UrlFetchApp.fetch(url, options);
  var jobj = JSON.parse(response);
  Logger.log(jobj);
}

/************************************
headersを作って返す
************************************/
function getHeaders(){
  var headers = {
      'Authorization': 'Bearer ' + getToken()
    };
  return headers;
}

/************************************
optionsを作って返す
************************************/
function getPostOptions(){
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'headers': getHeaders()
  };
  return options;
}

postFeed() を実行すると、指定したグループにメッセージが投稿されます