【GAS×freeeAPI】当日入金予定の取引一覧を毎日自動でチャットワークに送信する


こんにちは!ITライターのもり(@moripro3)です!

クラウド会計ソフトfreeeのAPIを使って経理業務を自動化するネタをシリーズでお届けしています。

このシリーズでは、freeeとチャットワークを連携して「当日入金予定の取引一覧を自動でチャットワークに送信するツール」を作成します。

成果物のイメージがこちら!入金予定のある日に、自動でチャットワークに通知が届きます。

freeeシリーズ2成果物イメージ

前回の記事では、スプレッドシートのデータからチャットワーク通知用の本文を作成しました。

【GAS×freeeAPI】スプレッドシートのデータからチャットワーク通知用の本文を作成する
「当日入金予定の取引一覧を自動でチャットワークに送信する」シリーズの第6回目。スプレッドシートの値を取得して文字列結合し、チャットワークに通知する本文を作成します。

今回の記事はいよいよ最終回です!チャットワークへの送信処理と、トリガーによるスクリプト自動実行の設定をしてツールを完成させますよ!

シリーズを通してfreeeAPIを使いこなし、経理業務の自動化を進めていきましょう!

(この記事はfreee株式会社さまとのコラボ企画です。シリーズを通して、皆さんの働くの価値を上げられるようサポートしていきます!)

(前回のおさらい)チャットワーク通知用の本文をログ出力

前回の記事では、スプレッドシートに書き出した取引データの「ID」の項目を、マスタとVLOOKUP関数で「名称」に変換しました。

チャットワークに送信する項目

そして、赤枠の5項目からチャットワーク通知用の本文を作る関数createBodyで、ログ出力するところまでを確認しました。

ログ出力結果です。

ログ出力結果

あとはこれをチャットワークに送信するのですが、その前に少し装飾を加えていきます。

本文にメッセージ記法のタグを付ける

チャットワークには、メッセージやタスクの情報を装飾して見やすくするための「メッセージ記法」が存在します。

メッセージ記法の詳細はこちらのチャットワークAPIドキュメントをご覧ください。

これまで作成した文字列に対して、チャットワークのメッセージ記法のタグを付けていきます。

このツールでは2種類のタグを付与します。

  1. [title]タグ = メッセージのタイトル部を表す
  2. [info]タグ = メッセージ全体が特別な情報であることを表す

チャットワークのメッセージ記法

※タイトルの文字列は、「【会計freee】YYYY-MM-DDの入金予定(未入金のみ)」とします。

関数createBodyに処理を加えます。タイトルの文字列を作成して[title]タグで囲み、さらに、titleとbody全体を[info]タグで囲みます。

できました!あとは、変数bodyをチャットワークに送信すれば完成です!

取引データをチャットワークに送信する

この項では、GASでチャットワークにメッセージを送信するスクリプトを書いていきます。

チャットワークAPIトークンの取得

GASでチャットワークを操作するために、チャットワークAPIを使用します。

まずは「チャットワークのAPIトークン」を取得します。チャットワークAPIトークンの発行手続きは比較的簡単なので、こちらの記事を参照のうえ、発行してください。

【初心者向けGAS】チャットワークのマイチャットにメッセージを送る最も簡単な例
初心者向けGoogle Apps Scriptのシリーズとして、チャットワークのBotを作成する方法をお伝えしています。今回は、超簡単な例としてマイチャットにメッセージを送る方法と、APIトークンの取得の方法です。

ライブラリ「ChatWorkClient for Google Apps Script」を追加

「ChatWorkClient for Google Apps Script」というライブラリを使うと、チャットワークに簡単にメッセージを送信できます。

ライブラリのプロジェクトキーがこちらです。

プロジェクトキー: M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT

ライブラリとは何か、ライブラリの追加方法についてはこちらの記事をご参照ください。

【初心者向けGAS】面倒なことはライブラリに任せよう!その概要と追加の方法
初心者向けGoogle Apps ScriptのシリーズとしてチャットワークのBotの作り方についてお伝えしています。今回はライブラリとは何か、またその追加の仕方についてお伝えしていきます。

送信先のルームIDを確認

チャットワークの送信先ルームを決めます。マイチャット・指定のグループいずれでも送信可能です。

チャットワークにはルーム(グループ)ごとに一意に割り当てられた「ルームID」が存在します。送信処理で「ルームID」が必要になるので、確認しましょう。

送信先ルームのURLの#!ridに続く数字が「ルームID」です。ここでは、当ブログの執筆チームグループに送信してみます。

チャットワークのルームIDを確認する

これでチャットワーク送信の準備が整いました!

チャットワークに送信するスクリプト

引数として受け取った文字列を、チャットワークの指定のルームIDに送信するスクリプトです。

※token, room_id は各自の情報を指定してください。

関数postChatworkに文字列を渡して実行すれば、チャットワークに送信できます。「送信者」はAPIトークンの所有者となります。

チャットワークAPIを使って送信

以上で、「当日入金予定の取引一覧をチャットワークに通知する」スクリプトの完成です。(スクリプトのまとめは最後に掲載します)

GASのトリガーを設定する

スクリプトを日次で自動実行するためにトリガーを設定します。

スクリプトエディタ上部の時計マーク「現在のプロジェクトのトリガー」を選択します。

現在のプロジェクトのトリガー

「+トリガーを追加」をクリックします。

トリガーを追加

赤枠の項目を設定します。「実行する関数を選択」は、関数mainです。送信時刻はお好みで指定しましょう。

トリガーの設定

これで、毎日午前6時~7時の間に自動でスクリプトが実行されます。条件に合致する取引が存在する日のみ、チャットワークに通知が届きます。

【まとめ】当日入金予定の取引一覧をチャットワークに送信するスクリプト

シリーズ2で作成した全スクリプトを掲載します。

※このスクリプトを動作させるためには、下記3つの条件が必要です。

  1. シリーズ1の記事「【はじめてのfreeeAPI】GASとfreeeつなぐ!連携認証の手順を一から紹介します」でfreeeAPIの認証を済ませていること
  2. 上記記事内の、freeeAPIのサービスを取得する関数「getService」が同一プロジェクト内に存在すること。また、Client_IDとClient_Secretに各自の値を設定していること
  3. 下記スクリプトの3つの変数に値を設定していること
    1. getDeals関数の「company_id」(事業所ID)
    2. postChatwork関数の「token」(チャットワークAPIトークン)
    3. postChatwork関数の「room_id」(チャットワークの送信先ルーム)

 

もり
もり

不明点や上手く動かないなどありましたら、私もり(@moripro3)にお気軽にお問い合わせください!TwitterのDMで承っております!

※当記事のコメント欄でももちろんOKです!

「当日入金予定の取引一覧を自動でチャットワークに送信する」シリーズの第7回目(最終回)では、チャットワークにメッセージを送信する処理を作成してツールを完成させました。また、これらの処理を紹介しました。

  • チャットワークのメッセージを装飾する「メッセージ記法」の使い方
  • GASからチャットワークにメッセージを送信するライブラリ「ChatWorkClient for Google Apps Script」の使い方
  • GASで指定の日時にスクリプトを自動実行するトリガーの設定方法

シリーズ2は以上です!お読みいただきありがとうございました。

連載目次:【GAS×freeeAPI】当日入金予定の取引一覧を自動でチャットワークに送信する

「クラウド会計ソフトfreee」のAPIをGASで操作して経理業務を自動化するシリーズ。「当日入金予定の取引一覧を自動でチャットワークに送信するツール」の作成を目標とします。

  1. ノンプログラミングでOK!「会計freee連携アドオン」でスプレッドシートにデータを取得する
  2. 【GAS×freeeAPI】指定条件の取引一覧を取得する「リクエストURL」の作り方と仕組み
  3. 【GAS×freeeAPI】GETリクエストで当日入金予定の取引一覧を取得する
  4. 【GAS×freeeAPI】APIリクエストのレスポンスから必要データのみを取り出す
  5. 【GAS×freeeAPI】オブジェクトからデータを取り出してスプレッドシートに書き出す
  6. 【GAS×freeeAPI】スプレッドシートのデータからチャットワーク通知用の本文を作成する
  7. 【GAS×freeeAPI】当日入金予定の取引一覧を毎日自動でチャットワークに送信する

  投稿者プロフィール

もり
もりITライター
GoogleAppsScript, VBAを専門とするITライターです。

退屈なことはプログラミングで片づけよう!
自らの事務職経験を活かし、事務作業をとことんラクにできるITネタを発信していきます。

個人ブログ『もりさんのプログラミング手帳』も運営中!

お気軽にTwitterフォローしてくださいね!

タイトルとURLをコピーしました