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版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
ヤマムギ vol.24 API GatewayでREST API作成と直接DynamoDB登録のデモをしました
2週間ぶりのヤマムギ勉強会デモなのでなんだか久しぶりな気がしました。 今日はポケ …
-
-
EC2 Amazon Linux 2 にAmazon LinuxからWordPressを移行
このブログを新しいインスタンスに移行することにしました。 2015年5月にAma …
-
-
ユーザーガイドの方法でGithubからCodeCommitへリポジトリを移行する
GitリポジトリをAWS CodeCommitに移行するを参照しました。 環境 …
-
-
AWS Personal Health Dashboardのパブリックイベントの記録
東京リージョンで発生したので、スクリーンショットを取っておいたので記録しておきま …
-
-
「CMC_Central 2024」に参加しました
個人サポーターとしてCMC_Central 2024に参加しました。 オープニン …
-
-
RDS for MySQL のインスタンスタイプ変更
当ブログのデータベースは、RDS for MySQLです。 個人利用ですし、障害 …
-
-
SendGridのイベントをAPI Gateway -> Lambda(Python) -> DynamoDBに格納する
SendGridのメールイベントログはコンソールで確認出来るのは直近7日分で一括 …
-
-
Rocket.ChatからOut Going Webhookを設定してみる
API GatewayとLambda とりあえず、どんなデータが飛んでくるのか見 …
-
-
Windows EC2インスタンスでEBSとインスタンスストアを使用する
Amazon EBS基本のデモ(「AWS認定試験テキスト AWS認定 クラウドプ …
-
-
Feedlyのフィードを自動でSlackへ投稿する(AWS Lambda , Amazon DynamoDB)
やりたいこと Feedlyで共有したいフィードに特定のタグを付けます。 特定のタ …