チェックしている将棋棋士の対局予定を自動でメールで通知してくれる仕組みを作った(GASとスプレッドシート)

久しぶりの投稿になります。本当に空いてしまいました。また定期的に投稿していきたいと思いますのでよろしくお願いします。

さて今回は将棋の話です。個人的に作ってみてかなり便利で役に立っていたので共有させていただきたいのですが、チェックしている棋士の将棋の対局予定を自動でメールで通知してくれる仕組みをGoogleAppsScript(GAS)とGoogleSpreadSheet(スプレッドシート)を使って作りました。

対局予定を手動でチェックし続けるのは手間もあり、見逃すことも

将棋の対局予定は、いつも一週間前に日本将棋連盟のホームページに掲載されます。

そのため、気になっている棋士の対局がないか何日かおきにそのホームページを見てチェックしているのですが、毎週対局があるわけでもないため、「ああ、まだ対局じゃなかったか」ということを日常的に繰り返していました。

そういうことが続くと、私はあまりマメな性格ではないため、まだ対局はないだろうと1週間2週間と置いてしまうこともあります。そんな時に限って実は対局があって、「あ、しまったチェックできていなかった」ということもこれまでに何度かありました。

こうしたことを繰り返していて、最近たまたまGoogleAppsScriptという便利なツールの勉強をし始めたということもあって、何とかならないかと思って作ってみたのが以下の仕組みになります。

スプレッドシートで情報を取得して、GASで該当の対局予定をメールする

この仕組みで行なっている処理は、以下のようになっています。

  1. スプレッドシートのimporthtml関数で日本将棋連盟のホームページに記載されている最新の対局予定を取得する
  2. 過去に取得していたデータと比較して、新しい対局予定にフラグをつける(スプレッドシート)
  3. フラグをもとに、新しい対局予定の場合にスプレッドシート上にそのデータを蓄積する(GAS)
  4. さらに特定の対局者かどうかをチェックし、特定の対局者の場合には指定したメールアドレスに通知メールを送信する(GAS)

あまり複雑ではないので、正直言ってプログラミングに明るい方は自力ですぐに作れてしまうと思います。ただプログラミングがわからないという方も設定できるように、簡単な設定方法を以下に記載しました。

※公式提供ではないので、日本将棋連盟のホームページの仕様が変更されると使えなくなる場合があります。予めご了承ください。

この仕組みの設定方法

用意するものは、Googleアカウント(Gmailのアカウント)とパソコンのみです。操作はパソコン上から行ってください。

①スプレッドシートをコピーする

Googleアカウントにログインした状態で、下記のスプレッドシートのURLにアクセスして、「コピーを作成」を選択してファイルのコピーを作成してください。

>>スプレッドシートURL


②通知の送信先メールアドレスとチェックしたい対局者名を入力する

コピーしたスプレッドシートの「送信先入力」タブ上で、通知を送りたいメールアドレスと、チェックしたい対局者名をそれぞれA列、B列の2行目以降に記載してください。送りたいメールアドレスが複数ある場合、またはチェックしたい対局者が複数いる場合は、下の行に追加していけば反映されます。


③GoogleAppsScriptのファイルをコピーする

続いて、下記のURLからGoogleAppsScriptのファイルをコピーします。

>>GoogleApppsScriptのURL


④GoogleAppsScriptのコード中のスプレッドシートのIDをコピーしたファイルのものに変更する

少しコードをカスタマイズします。といっても、操作するスプレッドシートの指定部分をコピーしたスプレッドシートのファイルのIDに変更するだけです。

コピーしたスプレッドシートURLは「https://docs.google.com/spreadsheets/d/1ajMLwqtjgIVr7V8mG6mE71C8RCKfrFyIeGlf2TD3NbE/edit#gid=1577342711」といったものになっていると思いますが、このうちの「1ajMLwqtjgIVr7V8mG6mE71C8RCKfrFyIeGlf2TD3NbE」がIDです。これに変更します。


変更したら保存ボタンもしくは「Ctrl+S」で変更内容を保存します。


⑤実行する

これでプログラム等は正常に動作するようになっています。GoogleAppsScriptの左上のタブにある「実行 > 関数を実行 > importantMatch」を選択して実行してみましょう。

承認を求められると思いますが、「許可を確認 > 自分のGoogleアカウントを選択」とします。「このアプリは確認されていません」という表示が出ても構わず「詳細 > コピー ~ 対局予定を自動でメール送信(安全ではないページ)に移動 > 許可」を選択して大丈夫です。


日本将棋連盟の対局予定にあなたがスプレッドシート上で指定した対局者の予定が入っていたら、指定したメールアドレス宛に通知が飛んでいるはずです。

⑥実行スケジュール(プロジェクトのトリガー)を設定する

最後に、GoogleAppsScriptを実行するスケジュールを設定します。GoogleAppsScriptのタブから「編集 > 現在のプロジェクトのトリガー」を選択すると、新しいページが立ち上がります。

立ち上がったページで、右下の「+トリガーを追加」を選択してスケジュールを設定します。

日本将棋連盟の対局予定の更新は午前中にされていて、1日1回の更新ですので、「日付ベース」にして「午前11時~午後12時」に設定すれば大丈夫でしょう。通知が飛ぶタイミングなので、お好みの時間帯に設定してください。


これで「保存」を押せば、完成です!

あなたがチェックしたい対局者の予定が追加されたら、自動で通知されるようになっています。

操作が分からない場合や不明な点がありましたら、問い合わせページからお問い合わせください。


しかし本当にGoogleAppsScriptは便利ですね。今後いろいろと活用してみたいと思います。