LoginSignup
1
3

More than 5 years have passed since last update.

GoogleAppScriptからFacebookに投稿

Last updated at Posted at 2017-07-23

環境

V2.10

概要

GoogleAppScriptを使用して一定時間ごとにFacebookにメッセージを投稿します

Facebookアプリの作成

・「新しいアプリの追加」を押す
・「表示名」を入力する(例:TestGAS)
・「アプリIDを作成したください」を押す
・セキュリティチェックで文字を入力する

アクセストークンの取得

・「グラフAPIエクスプローラ」の右側の「アプリ」と表示されているドロップボックスを作成したアプリに変更する(例:TestGAS)
 最初は「GraphApiExplorer」と表示されているかもしれない
・「トークンを取得」を押す
・「ユーザーアクセストークンを取得」を押す
・「publish_actions」にチェックする
・「アクセストークンを取得」を押す
 「アクセストークン」に表示される このアクセストークンは短期で1時間くらいしか有効じゃない

長期アクセストークンの取得

・「GET/V2.10/」の横に「oauth/access_token?grant_type=fb_exchange_token&client_id=AAA&client_secret=BBB&fb_exchange_token=XXX」と入力して、「送信」
 AAAはアプリID(ダッシュボードで確認)
 BBBはappsecret(ダッシュボードで確認)
 XXXは取得したアクセストークン
・返ってきた長期アクセストークンをメモる
 

ユーザーIDの確認

・「GET/V2.10/」の横に「me?fields=id,name」と入力して、「送信」

投稿のテスト

・「GET/V2.10/」の「GET」を「POST」に変更
・「me/feed?message=TestMessage」と入力して「送信」
 TestMessageが投稿される

ブラウザからUrlで投稿

・ブラウザのURL入力欄で「https://graph.facebook.com/me/feed?method=POST&version=v2.10&message=TestMessage&access_token=XXX」と入力してリターン
 meの部分はユーザーIDでも可能
 XXXは取得した長期アクセストークン

アクセストークンデバッガ

アクセストークンを入力すると有効期限等の情報が得られる

GoogleAppScriptの作成

・下記のスクリプトをコピペして置き換える

アクセストークン用スクリプトプロパティの作成

・「ファイル」>「プロジェクトのプロパティ」を押す
・「スプリプトのプロパティ」タブに変更する
・「行の追加」を押す
・「名前」にプロパティ名を入れる(例:accessToken)
・「名前」欄の右側を押すと「値」入力欄が出るので取得した長期アクセストークンを入力する
 PropertiesService.getScriptProperties().getProperty('accessToken')でアクセスできる

一定時間毎に処理を行う

GoogleAppScriptを使用して一定時間毎にFirebaseにレコードを追加するを参照する

スクリプト

function setTrigger()
{
  //十分毎に処理を実行
  var executeFuncName = "httpRequestFacebookPost";
  deleteTriggers( executeFuncName );
  ScriptApp.newTrigger( executeFuncName ).timeBased().everyMinutes( 10 ).create();
}

function deleteTriggers( executeFuncName )
{
  //登録されているトリガーを削除
  var triggers = ScriptApp.getProjectTriggers();
  for( var i = 0; i < triggers.length; i++ )
  {
    if ( triggers[ i ].getHandlerFunction() == executeFuncName )
      ScriptApp.deleteTrigger( triggers[ i ] );
  }
}

function httpRequestFacebookPost()
{
  var uri = "https://graph.facebook.com/me/feed?method=POST&version=v2.10";
  var message = "TestMessage4";
  var accessToken = PropertiesService.getScriptProperties().getProperty('accessToken');
  UrlFetchApp.fetch( uri + "&message=" + message + "&access_token=" + accessToken );
}
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3