kintoneに登録されたアカウントの電話番号にGoogleカレンダーの予定をAmazon Pollyが読み上げてTwilioから電話でお知らせする(AWS Lambda Python)
2017/05/07
目次
Google Calendar Twilio Reminder
Googleカレンダーの予定を電話音声でリマインダーします。
- 対象とするGoolgeアカウントと受電する電話番号はkintoneに登録します。
- トリガーはAmazon CloudWatchで毎時0分にAWS Lambdaを実行します。
- Googleカレンダーの予定はAmazon PollyがMP3ファイルを生成してS3に格納します。
- Googleカレンダーは使用するサービスアカウントに閲覧権限を設定します。
ソースコードはGitHubに置いてます。
各APIの説明はAPIごとにブログ記事に書いてます。
以下をご確認ください。
以下、簡易説明です。
kintoneアプリの作成
以下の項目を持つアプリを作成します。
フィールド名 | フィールドコード | タイプ | 内容 |
---|---|---|---|
メールアドレ | calendar_id | 文字列(1行) | Googleアカウントのメールアドレス |
電話番号 | tel_number | 文字列(1行) | Twilioからかかってくる先の電話番号 |
無効 | invalid | チェックボックス | 選択項目は「無効」のみ |
※「無効」は設定を無効にするための項目です。レコード削除でも同じです。
Googleカレンダー
Google Developers ConsoleでCalendar V3 APIを発行してサービスアカウントを作ります。
認証キーはjson形式にしてソースコードと同じフォルダに配置します。
対象のカレンダーに作ったサービスアカウントに閲覧権限を設定します。
AWS Lambda
ソースコードをダウンロードして、requirements.txtに記載のパッケージをソースコードと同じフォルダにインストールしてzipで固めて、Lambdaにアップロードします。
AWS Lambdaに設定する環境変数
変数名 | 設定値 |
---|---|
TIME_LAG | 予定を何時間前に通知するかを設定します |
TIME_ZONE | Asia/Tokyoなど |
BUCKET_NAME | Amazon Pollyが生成するMP3ファイルを格納するS3バケット名 |
BUCKET_REGION | ap-northeast-1など S3バケットがあるリージョン名 |
VOICE_ID | Amazon PollyのボイスID 日本語なので Mizuki |
POLLY_REGION | Amazon Pollyのリージョン名 |
KINTONE_DOMAIN | kintoneのドメイン xxx.cybozu.com |
KINTONE_APP | kintoneのアプリの数字 |
KINTONE_HEADERS_KEY | X-Cybozu-API-Token |
KINTONE_API_KEY | kintoneのAPIキー |
KINTONE_BASIC_HEADERS_KEY | Authorization |
KINTONE_BASIC_HEADERS_VALUE | kintoneベーシック認証のキー(Basic)で始まる |
DOMAIN | Googleのドメイン GSuiteは独自ドメイン、フリーアカウントはgmail.com |
GOOGLE_SERVICE_ACCOUNT_ID | GoogleのサービスアカウントID |
TWILIO_ACCOUNT_SID | TwilioのアカウントSID |
TWILIO_AUTH_TOKEN | Twilioのトークン |
TWILIO_FROM_NUMBER | Twilioの発信元電話番号 |
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
EC2 Auto Recovery機能を設定しておいた
以前EC2インスタンスのリタイア対象になったこともあり、というより、やっておいて …
-
-
AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る
Amazon LinuxにGitをインストールする Gitをインストールして自動 …
-
-
AWS Systems Managerパラメータストアで「Parameter name must be a fully qualified name.」
パラメータストアでパラメータ階層を作成しようとして、パラメータ名に例えば「wor …
-
-
AWS Cost Explorerの設定で「EC2リソースの推奨事項を受け取る」を有効にしました
「EC2リソースの推奨事項を受け取る」という機能がAWS Cost Explor …
-
-
Apple Silicon M1 MacBook ProにAWS CLI v2をインストール
公式手順どおりにインストールしました。 macOS での AWS CLI バージ …
-
-
AWS Glueチュートリアル
AWS Glueのマネジメントコンソールの左ペインの一番下にチュートリアルがあり …
-
-
AWS EC2 でインスタンスにIPアドレスを紐付ける
AWS EC2で作ったサーバは何もしなければ起動するたびにIPアドレスが変わって …
-
-
Microsoft TeamsのOutgoing Webhooksを使ってAWS Lambda(Python), Amazon API Gatewayとbot
Microsoft Teamsの検証その2、Slackで実装しているbotも対応 …
-
-
特定のIAMロールをLambda(Python)で削除する
やりたいこと 特定アカウントの特定の名前が含まれるIAMロールをまとめて削除した …
-
-
CloudTrailのログファイルの整合性検証をAWS CLIで実行しました
CloudTrailのログファイルの検証を「有効」にしました。 上記のようなCl …