ヤマムギ

growing hard days.

*

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の発信元電話番号

最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

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

i

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS , , , , , , ,

ad

ad

  関連記事

特定AWSアカウント特定リージョンのCloud9環境を削除するLambda(Python)

やりたいこと 特定アカウント内特定リージョン内のCloud9環境を全部削除したい …

AWS CDK とにかくサンプルでやってみる

Cloud9でAWS CDK環境で作った環境でサンプルプロジェクトからのデプロイ …

Microsoft TeamsのOutgoing Webhooksを使ってAWS Lambda(Python), Amazon API Gatewayとbot

Microsoft Teamsの検証その2、Slackで実装しているbotも対応 …

試そうとしてたらSavings Plans買っちゃいました

Savings Plansの購入画面を確認していました。 画面遷移も確認しようと …

AWS Organizations組織の移動

AWS Organizations組織の移動 やりたいことは、Oraganiza …

よくあるサーバーレスアーキテクチャで質問フォーム

この記事はServerless2 Advent Calendar 2018に参加 …

AWSアカウントの解約

アカウント作成メニュー確認のために作成したAWSアカウントを解約しました。 使っ …

T3.nanoで仮想メモリ割当をユーザーデータで実行する

T3.nanoはメモリがだいたい500MBです。 実行する処理によってはメモリエ …

AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る

Amazon LinuxにGitをインストールする Gitをインストールして自動 …

AWS Well-Architected フレームワークによるクラウド ベスト プラクティスのセッションを聞いたので自アカウントの環境を確認してみる

AWS Summit Tokyo 2017で「AWS Well-Architec …