ChatWorkに予約投稿機能はまだありません。
ですのでチャットワークAPIとGAS(Google Apps Script)を使っての予約投稿を試してみました。
【Chatwork】仕事効率化!10個のおすすめの便利機能と拡張機能まとめ
ChatWork:[基本]繰り返し使える!チャットワークに予約投稿する方法
Google Apps Scriptを使います。
チャットワークAPIの利用申請
外部のプログラム(Google Apps Script)を使用する為、チャットワークAPIの入手が必要です
Google Apps Scriptの設定とテスト投稿
- Googleドライブ>その他>アプリを追加からGoogle Apps Scriptを検索して選択します。
- Google Apps Scriptを開いたら、まずリソース>ライブラリからChatWorkClientのプロジェクトキーを検索して追加。バージョンを最新にして保存します。
M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT
GitHubGitHub - cw-shibuya/chatwork-client-gas: Chatwork Client for Google Apps Script Chatwork Client for Google Apps Script. Contribute to cw-shibuya/chatwork-client-gas development by creating an account on GitHub. - コードの入力
デフォルトで作成されているコード.gsに下記コードを入力します。
function sendMessageTest() { var client = ChatWorkClient.factory({token: 'ここにAPIを入力'}); client.sendMessage({room_id: ここにルームIDを入力, body: '送りたい内容を入力'}); }
- ルームIDは送りたいルームのアドレスに書いてある番号を入力します。
-
実行
再生ボタンまたは実行メニューからsendMessageTestを押してみます。
すこしラグがありますが、チャットワークに投稿されているはずです。
チャットワークで予約投稿する
-
ストップウオッチボタンまたはリソース>現在のプロジェクトのトリガーから新しいトリガーを追加します。
-
時間主導型、特定の日時を選び日付を入力します。
例
2017-02-27 23:26
- 保存すれば、多少ラグがでますが、その時間にチャットワークへ投稿されます。
サンプル
function sendMessageTest() { var client = ChatWorkClient.factory({token: 'チャットワークAPIトークン'}); client.sendMessage({room_id: 送りたいルームID, body: '[To:77777777]nテストです。nnデータのパスです。n[info]C:\Users\ユーザー名\Desktop\[/info]'}); }
QiitaGoogle Apps ScriptからChatWork APIを使って投稿する - Qiita Google Apps Script用のChatWork Clientを中の人が作られているようなので、用意されたAPIを叩くだけで簡単に実現できます。 チャットワークAPI を Google Apps Script で...
ChatWork:[基本]チャットワークで指定時間に時刻をお知らせ投稿する方法
chatwork+gas(Google Apps Script)で「毎日指定時刻に投稿 + 投稿内容は指定時刻を記述」にしてみました。
理由としては、チャットワークが流れがちなので、日にちごとに区切りを入れたかっただけです。
指定時間に時刻を投稿するコード
function sendMessageMyroom() {
var client = ChatWorkClient.factory({token: 'チャットワークAPIトークン'});
var todayDate = new Date();
var todayDay = Utilities.formatDate( todayDate, 'Asia/Tokyo', 'yyyy年M月d日 h時m分');
client.sendMessage({room_id: '送りたいルームID', body: '[hr]'+todayDay+'になりました!'});
}
// その日の10時14分にトリガーを設定
function setTrigger() {
var triggerDay = new Date();
triggerDay.setHours(10);
triggerDay.setMinutes(14);
ScriptApp.newTrigger("main").timeBased().at(triggerDay).create();
}
// その日のトリガーを削除する関数
function deleteTrigger() {
var triggers = ScriptApp.getProjectTriggers();
for(var i=0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() == "main") {
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
// 実行したいスクリプト本体
function main() {
deleteTrigger();
sendMessageMyroom();
}
まとめると
- 「チャットワークAPIトークン」と「送りたいルームID」の2箇所を入力
-
Utilities.formatDate( todayDate, 'Asia/Tokyo', 'yyyy年M月d日 h時m分');
で投稿時刻を取得 -
あとはsetTrigger()を日時指定のトリガーに登録すればOK
ChatWork:[応用]GASで画像アップロード投稿をする方法
GASで画像をアップロードするスクリプトです。コードは下記になります。
結果です。
※公式ドキュメントからGASに変換するの地味に時間かかりました。
ChatWork:[応用]スプレッドシートから予約投稿+画像アップロードする方法
単発でこの時期に投稿したい!と決まっていることの予約投稿に使えそうです。
下記の記事のコードを使います。
スプレッドシートの準備
日時の記述は
2019/07/08 23:30:00
みたいな感じです。
スクリプトが無事実行されると投稿日時に時刻が挿入されます。
失敗すると記述が消えてしまうので注意。
GASの記述
基本的には前日の画像アップロードの記述を足しただけです。
アップロードするデータがGoogleドライブに事前に入れておきます。
スクリプトを記入したらトリガーに10分間隔で登録しておきましょう!