環境
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 );
}