0.はじめに
以下の記事にある様に、サイト監視に Site24x7 を利用しているんですが…、
- StatusCake や Site24x7 と同じ様な海外のサイト監視サービスを色々と調べてみた - Qiita
- Site24x7 での API キーの取得のやり方 - Qiita
- kintone アプリで管理しているサイト情報を、Site24x7 と StatusCake に連携させてみる - Qiita
先日、以下の様なメールが届きまして…、
どうやら、
「API の認証が OAuth 2.0 に変更になるから、対応ヨロシク〜♪」
ということみたいで…、
とりあえず、今回は API の OAuth 2.0 認証のアクセストークンを取得してみます。
基本的に、以下のドキュメントの手順通りに進めます。
1.ZOHO Developer Console で セルフクライアント を作成する
- 以下のリンクの「United States」リンクをクリックし、ZOHO Developer Console を表示します。
- 表示されたページの「GET STARTED NOW」ボタンをクリックします。
- 表示されたページの「Self Client」ボタンをクリックします。
- 表示されたページの「CREATE」ボタンをクリックします。
- 表示されたダイアログの「OK」ボタンをクリックします。
- 表示されたページに、以下の項目が表示されますので、メモしておきます。
2.作成した セルフクライアント の コード を生成し、合わせて各種トークンを取得する
- 作成したセルフクライアントの詳細ページを表示、「Generate Code」タブを選択後、以下の項目を入力し、「GENERATE」ボタンをクリックします。
- Scope :
- Site24x7.Account.All,Site24x7.Admin.All,Site24x7.Reports.Read,Site24x7.Operations.All
- ※ 詳細は、Site24x7 | API Reference の「List of scopes available in Site24x7」を参照。
- Time Duration :
- 10 minutes
- ※ 念の為、長めに。
- Scope Description :
- ※ 任意
- Scope :
- 表示されたダイアログの「COPY」ボタンをクリック、生成されたコードをコピーします。その後、ダイアログを閉じます。
- 以下のコマンドを実行し、各種トークン (アクセストークンとリフレッシュトークン) を取得します。
curl https://accounts.zoho.com/oauth/v2/token -X POST \
-d "client_id=[Client ID]" \
-d "client_secret=[Client Secret]" \
-d "code=[生成されたコード]" \
-d "grant_type=authorization_code"
{
"access_token":"****",
"refresh_token":"****",
"expires_in_sec":3600,
"api_domain":"https://www.zohoapis.com",
"token_type":"Bearer",
"expires_in":3600000
}
- ※ 念の為、以下のコマンドを実行し、取得したアクセストークンが正常に利用出来るか確認します。
curl https://www.site24x7.com/api/monitors \
-H 'Authorization: Zoho-oauthtoken [アクセストークン]'
3.アクセストークンを更新する
- 以下のコマンドを実行し、アクセストークンを更新します。
curl https://accounts.zoho.com/oauth/v2/token -X POST \
-d "client_id=[Client ID]" \
-d "client_secret=[Client Secret]" \
-d "refresh_token=[リフレッシュトークン]" \
-d "grant_type=refresh_token"
{
"access_token":"****",
"expires_in_sec":3600,
"api_domain":"https://www.zohoapis.com",
"token_type":"Bearer",
"expires_in":3600000
}
99.ハマりポイント
- そこまでハマった訳じゃ無いですが…、日本語の記事が全然無くて、ちょっと手間取りました…。
* やっぱり日本語の記事ってありがたいですよね♪
XX.まとめ
今回、OAuth 2.0 のアクセストークンを取得してみましたが…、
これまでのアクセストークンと異なり、(実行頻度にもよりますが…、)これからは毎回アクセストークンを取得する必要が出てきました。
以下の記事の様に、AWS Lambda で Python スクリプトを実行しているので、Python スクリプトの修正も必要となります。
今のスクリプトには、各種シークレットコードをソースにベタ書きしており、そのままアクセストークンを取得する処理を追加しても良いんですが、出来れば AWS SSM Parameter Store を使って、よりセキュアに出来ればとも思います。
- AWSのParameter StoreとSecrets Manager、結局どちらを使えばいいのか?比較 - Qiita
- AWS Lambda + SSM Parameter Store でカウンターを作る - Qiita
- パラメータストアを使って安全なLambda関数を作成する | Developers.IO
時間作って、対応できればと!
以上、ご参考になれば♪
👋👋👋