【chatGPTで作るプログラミング】出勤時間を自動で通知できるGASのコードとは

雑記

自宅から職場までの所要時間を自動で検索し、出勤前にメールで通知してくれるプログラムを作りました。

はじめに

おはようございます。パッキャオです。

最近、引っ越しをして自宅から職場までの距離が少し遠くになりました。

そして自宅から職場まで、よく渋滞する道のりなのです。

なので、出勤前にグーグルマップで自宅から職場までの時間を検索し、所要時間を確認してから出勤しておりました。

仕事の度にすることなので、どうにか自動化できないかと。

ということでプログラミングで自動化してみようと思います。

所要時間を自動でお知らせしてくれるプログラミングを作ってみた

みなさん、GAS(Google Apps Script)とchatGPTはご存知でしょうか?

私はプログラミング初心者ですが、chatGPTにプログラミングのコードを聞いて、GASでプログラムを作ることができました。

どちらも無料で利用できます。

GAS(Google Apps Script)とは

GASとは、Googleのオンラインサービスを自動化するためのスクリプト言語です。

JavaScriptベースで、Googleドキュメント、スプレッドシート、GmailなどのGoogleアプリケーションと連携できます。

Apps Script – Google Apps Script

chatGPTとは

ChatGPTは、OpenAIが開発した自然言語処理モデルで、テキストベースの対話を生成することができます。

文章を生成・理解し、質問に回答したり、文章やプログラムを生成したりします。

https://chat.openai.com/

プログラムの作り方

それでは本題。

最初にchatGPTにお願いしたことは、自宅から職場までの所要時間を検索して、メールでお知らせしてくれるコードです。

プログラムを実行すると、Gmailに所要時間をお知らせしてくれました。

しかし、何度プログラミングを実行しても所要時間が同じ時間だったのです。

そこで次にchatGPT先生にお願いしたことは、現在時刻での所要時間を検索するように追加してもらいました。

これで、リアルタイムの所要時間がメールで送られるようになりました。

ここからGoogleのカレンダーの日勤というイベントの日の、7時になったら上のプログラムを起動するよう追加しました。

実は、うまくプログラムが作動せず、chatGPTと同じようなやりとりを繰り返して試行錯誤し、なんとか最初に思い描いていたプログラムを作ることができました。

コードはこちら

function sendCommuteTimeEmailWithTraffic() {
  // 以下の情報を設定してください
  var homeAddress = "1.ここに自宅の住所を入力";
  var workAddress = "2.ここに職場の住所を入力";
  var apiKey = "3.ここにGoogle Maps Directions APIのAPIキーを入力";
  var recipientEmail = "4.ここに受信者のメールアドレスを入力";
  var subject = "リアルタイム通勤所要時間通知";
  var calendarId = "5.ここにカレンダーIDを入力";

  // "日勤" イベントの取得
  var calendar = CalendarApp.getCalendarById(calendarId);
  var now = new Date();
  var events = calendar.getEventsForDay(now);

  for (var i = 0; i < events.length; i++) {
    var event = events[i];
    if (event.getTitle() === "日勤") {
      // イベントが "日勤" の場合、通勤所要時間を計算しメールを送信
      var directionsURL = "https://maps.googleapis.com/maps/api/directions/json" +
        "?origin=" + encodeURIComponent(homeAddress) +
        "&destination=" + encodeURIComponent(workAddress) +
        "&mode=driving" +
        "&departure_time=now" + // 現在の時間を出発時刻として設定
        "&key=" + apiKey;

      var response = UrlFetchApp.fetch(directionsURL);
      var data = response.getContentText();
      var jsonData = JSON.parse(data);

      // 所要時間を取得
      if (jsonData.status === "OK") {
        var duration = jsonData.routes[0].legs[0].duration_in_traffic.text;

        // 所要時間を含むメッセージを作成
        var message = "現在の通勤所要時間(リアルタイム考慮)は " + duration + " です。";

        // メールを送信
        MailApp.sendEmail({
          to: recipientEmail,
          subject: subject,
          body: message
        });
      } else {
        Logger.log("Directions request failed with status: " + jsonData.status);
      }
    }
  }
}

もし上のコードを使用される場合は、変数を入力する必要があります。

1.自宅の住所、2.職場の住所、3.Google Maps Directions APIのAPIキー、4.メールアドレス、5.カレンダーIDを入力してください。

7時の設定方法は、GASの画面の左にある時計のマークのトリガーから設定します。

Google Map API の取得方法はこちらのサイトを参考にしました。
これを見れば完璧!Google Maps API 取得方法をご紹介します。 | 株式会社エクセレント
GoogleMapは多くの人が利用しているツールで、操作性もいいのでユーザーにも好まれますので、ホームぺージを制作する際に店舗や会社の所在地を地図で表示する個所では、Googleマップをページに埋め込みたいというご要望が多く頂きます。

Google Maps APIの有効化のチュートリアルを参考にするとわかりやすいですが、下が取得手順の簡単な流れです。

Google Maps APIの取得手順

APIとサービス→ライブラリ→MAPs JavaScript API→有効にする

APIとサービス→認証情報→鍵を表示します

Google CalendarのIDの確認はこちらから
【Googleカレンダー】カレンダーIDを確認する方法|共有やAPIで利用
【Googleカレンダー】カレンダーIDを確認する方法|共有やAPIで利用|今回は、Googleカレンダーの共有やGoogleカレンダーAPI(Calendar API)で利用する、カレンダーIDを確認する方法となります。【Googleカレ...
Google Calendar IDの取得手順

Googleカレンダーをひらく→左にあるマイカレンダーの名前の横の3つの点→設定と共有→下にスクロールするとカレンダーIDがあります。

おわりに

これで、自宅から職場までの所要時間を自動で検索し、メールで通知するシステムが完成しました。

プログラミングの経験がない方でも、Google Apps ScriptとChatGPTを組み合わせることで、便利な自動通知システムを簡単に構築できます。

これにより、毎日の通勤時に時間を節約し、ストレスを軽減できます。

是非、試してみてください!

この記事では、GASを使用して便利な自動通知システムを作成する手順を詳しく説明しました。

プログラミングの知識がなくても、誰でも簡単に実現できるので、通勤時間の効率化に役立ててください。

上の青枠内の文章は、chatGPTが作った文章をそのままコピペしました。

chatGPTってすごいですね。

パッキャオ
パッキャオ

最後まで見ていただいてありがとうございました。

コメント