[無料配布]自作スクリプト・ツール

【ChatWork】時間指定可!チャットワークに予約投稿する方法

0

chatwork-reserve-post

ChatWorkに予約投稿機能はまだありません。

ですのでチャットワークAPIとGAS(Google Apps Script)を使っての予約投稿を試してみました。

この記事の著者
CGブロガー すいみん

CGブロガー

すいみん

Suimin

プロフィール

某美大の油絵科を卒業後、大手CG映像プロダクションに入社。
その後ゲーム業界に転職。
現在は技術系のCGデザイナーをしています。 書籍:Unity デザイナーズ・バイブル
プロフィール詳細はこちら

繰り返し使える!チャットワークに予約投稿する方法

Google Apps Scriptを使います。

チャットワークAPIの利用申請

外部のプログラム(Google Apps Script)を使用する為、チャットワークAPIの入手が必要です

チャットワークAPIドキュメント

Google Apps Scriptの設定とテスト投稿

  • Googleドライブ>その他>アプリを追加からGoogle Apps Scriptを検索して選択します。
  • Google Apps Scriptを開いたら、まずリソース>ライブラリからChatWorkClientのプロジェクトキーを検索して追加。バージョンを最新にして保存します。

f:id:min0124:20170227234633p:plain

M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT

GitHub – cw-shibuya/chatwork-client-gas: ChatWork Client for Google Apps Script

  • コードの入力

デフォルトで作成されているコード.gsに下記コードを入力します。

function sendMessageTest() {
var client = ChatWorkClient.factory({token: 'ここにAPIを入力'});
client.sendMessage({room_id: ここにルームIDを入力, body: '送りたい内容を入力'});
}

ルームIDは送りたいルームのアドレスに書いてある番号を入力します。

f:id:min0124:20170227235042p:plain

  • 実行

再生ボタンまたは実行メニューからsendMessageTestを押してみます。

すこしラグがありますが、チャットワークに投稿されているはずです。

チャットワークで予約投稿する

  • ストップウオッチボタンまたはリソース>現在のプロジェクトのトリガーから新しいトリガーを追加します。
  • 時間主導型、特定の日時を選び日付を入力します。

f:id:min0124:20170227235621p:plain

2017-02-27 23:26
  • 保存すれば、多少ラグがでますが、その時間にチャットワークへ投稿されます。

f:id:min0124:20170227235739p:plain

サンプル

function sendMessageTest() {
var client = ChatWorkClient.factory({token: 'チャットワークAPIトークン'});
client.sendMessage({room_id: 送りたいルームID, body: '[To:77777777]\nテストです。\n\nデータのパスです。\n[info]C:\\Users\\ユーザー名\\Desktop\\[/info]'});
}
参考 Google Apps ScriptからChatWork APIを使って投稿する - Qiita取得できませんでした

応用:チャットワークで指定時間に時刻をお知らせ投稿する方法

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

参考 Google Apps Scriptの日毎のトリガーで時間をもっと細かく設定する - Qiita取得できませんでした

以上、すいみん(@cg_method)でした!

0