LoginSignup
3
0

More than 1 year has passed since last update.

Gmail の受信を Webex Messaging Bot で通知する

Last updated at Posted at 2021-12-13

#初めに
日々、メールが沢山来て、メールの管理が大変だったり、重要なメールを見落としてしまったり・・・ということはないでしょうか?
そんなメールの課題を解消すべく、今回はGmailに送信されてきたメールのうち、特定の条件を満たすメールを受信したタイミングで Webex Messaging Bot に通知を行う仕組みを作成していこうと思います。

プログラミングは一切行わず、iPaaS(webMethods.io)とコマンドプロンプトを使用して作成します。

#Google APIのアクセストークンを取得する
webMethods.ioのGmailの設定項目を確認してみます。
image.png

見てわかる通り、アクセストークン、リフレッシュトークンの設定が必要です。

webMethods.ioでフローを作成する前に、Google APIのアクセストークンを取得する作業を行います。
Google Cloud Platform」から、GmailのAPIを有効にします。
image.png
※APIを有効にする手順は「Webex Messasingのスペース管理をAPIで行う②」参照

###認証情報を作成する
GmailのAPIはアクセストークンが必要であるため、引き続き認証情報の作成を行っていきます。
「APIとサービス」→「認証情報」の順に選択して、「認証情報」画面へ移動いします。
image.png

「認証情報を作成」→「OAuthクライアントID」を選択します。
image.png

必要情報を入力して、「作成」を選択します。
image.png

画面に表示された「クライアントID」「クライアントシークレット」は後ほど使用するため、控えておきます。
(別画面で「クライアントID」「クライアントシークレット」は再確認可能です)
image.png

次に、認可を行うプロジェクトを作成します。

「OAuth同意画面」を選択すると、作成済みのプロジェクトが表示されます。
表示がない場合、「プロジェクトを作成」からプロジェクトを作成していきます。
image.png

新しいプロジェクトで「プロジェクト名」を入力し、「作成」で進みます。
image.png

「User Type」を選択して、「作成」で進みます。
image.png

必要項目を入力して「保存して次へ」で進みます。
image.png

必要項目を入力して「保存して次へ」で進みます。
image.png

APIを許可するユーザーを追加しておきます。
追加したら、「保存して次へ」で進みます。
image.png

###認可コードを取得する
アクセストークン、リフレッシュトークンを作成するために、認可コードを取得する必要があります。
※OAuth2の認可フローについては「Google Identity Platform
Google > OAuth2.0を使用してGoogleAPIにアクセスする
」を参照

認可コードの取得については、「WebサーバーアプリケーションにOAuth2.0を使用する」に従って進めていきます。

認可コード取得のために設定する項目は以下の通りです。

パラメータ 設定値
client_id 作成したOAuthクライアントの「クライアントID」
redirect_uri 作成したOAuthクライアントに設定した「承認済みのリダイレクトURI」
scope https://www.googleapis.com/auth/gmail.readonly( ※1)
response_type code
access_type offline( ※2)

※1 scope
スコープには、許可する権限範囲を設定します。
今回はメールのタイトルで判定する予定なので読み取りのみ可能なスコープ「https://www.googleapis.com/auth/gmail.readonly」を設定します。
スコープの一覧は「Choose Auth Scopes」参照。

※2 access_type
「offline」を設定しない場合、次工程で「リフレッシュトークン」が取得できなかったため設定

認可サーバーへリクエスト「https://accounts.google.com/o/oauth2/v2/auth」を送信します。
作成したURIをブラウザに入力すると、認可コードが取得できます。

https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&response_type=code&client_id=【クライアント ID】&redirect_uri=【リダイレクトURL】&scope=https://www.googleapis.com/auth/gmail.readonly

image.png

許可するアカウントを選択します。
image.png

「Continue」で進みます。
image.png

返ってきたURIの「code」に格納されている情報が「認可コード」になります。
image.png

###アクセストークン、リフレッシュトークンを取得する
アクセストークン、リフレッシュトークンの取得については、「WebサーバーアプリケーションにOAuth2.0を使用する」に従って進めていきます。

アクセストークン、リフレッシュトークン取得のために設定する項目は以下の通りです。

パラメータ 設定値
client_id 作成したOAuthクライアントの「クライアントID」
client_secret 作成したOAuthクライアントの「クライアントシークレット」
redirect_uri 作成したOAuthクライアントに設定した「承認済みのリダイレクトURI」
code 取得した「認可コード」(※3)
grant_type authorization_code
> ※3 code > 認可コードの「/」はASCIIコード「%2F」で応答される場合があるので、変換して「/」で設定してください。

認可サーバーへリクエスト「https://accounts.google.com/o/oauth2/token」を送信します。
コマンドラインに入力して、トークンを取得します。

curl --data-urlencode "code=【認可コード】" --data-urlencode "client_id=2【クライアントID】" --data-urlencode "client_secret=【クライアントシークレット】" --data-urlencode "redirect_uri=https://127.0.0.1" --data "grant_type=authorization_code" https://accounts.google.com/o/oauth2/token

アクセストークンとリフレッシュトークンが取得できたことが確認できました。
image.png

#メールの通知をWebex Messaging Botに通知させる
ここから、実際にフローを作成して、条件を満たすメールを受信したらWebex Messaging Botが通知するようにしていきます。
webMethods.ioへ移動して認可情報を設定していきます。

フローはかなり単純な構成になっています。
トリガーにGmailを取得して、該当するメールであった場合はメッセージを通知して終了です。
image.png

それでは、トリガーで「Gmail」を選択し、認可情報を入力します。
image.png

パラメータ 設定値
Client ID 作成したOAuthクライアントの「クライアントID」
Client Secret 作成したOAuthクライアントの「クライアントシークレット」
Access Token 取得したアクセストークン
Access Token 取得したリフレッシュトークン
Refresh Url https://oauth2.googleapis.com/token
Grant Type refresh_token

トリガーの設定内容は次の通りです。
新しいメール受信時に、件名に「【重要】」と含まれるメールであった場合、通知対象としています。
image.png

続いてBotの設定を行います。
Botは通知内容にGmailの「件名」を通知するように設定しています。
image.png

それでは、実際にBotを動かくして確認してみましょう。

2件のメールを受信しました。
片方は件名に「【重要】」が含まれています。
image.png

Botの通知を確認してみましょう。
image.png

件名に「【重要】」が含まれたメールの受信のみ通知している事が確認できました。

#最後に
GoogleのAPIを活用した事で、Webex MessasingのBotをGamilを連携して活用することができました。
このようにWebex Messasing BotはWebex製品内だけなく他アプリケーションと連携した活用方法もできるので、通知、リマインダー、備忘録の作成など便利ツールとして使用する事ができます!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0