みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASによるマネーフォワードクラウド請求書APIの操作についてできる限りていねいに紹介をするシリーズをお送りしています。
前回の記事はこちら!
OAuth2ライブラリでマネーフォワードクラウド請求書API用の「サービス」を作るスクリプトを解説しました。
今回は、その続き。
OAuth2 for Apps Scriptライブラリがどうやって認証用URLを作成しているのかを解説します。
では、行ってみましょう!
前回までのおさらい
前々回の記事では、OAuth2ライブラリでマネーフォワードクラウド請求書APIへの認証を行い、アクセストークンを取得する流れをざっと説明しました。
まず、以下のauthorize関数を実行するんでしたね。
/**
* 認証を行いアクセストークンをログ出力する
*/
function authorize() {
const service = getMFInvoiceService_();
const authorizationUrl = service.getAuthorizationUrl();
console.log(authorizationUrl);
}
すると、getMFInvoiceService_関数が呼び出されて、マネーフォワードクラウド請求書API用の「サービス」が作成されます。
/**
* 指定した名前で新しいMFクラウド請求書のサービスを作成する
*/
function getMFInvoiceService_() {
const serviceName = 'mfInvoice';
const authorizationBaseUrl = 'https://invoice.moneyforward.com/oauth/authorize';
const tokenUrl = 'https://invoice.moneyforward.com/oauth/token';
const properties = PropertiesService.getScriptProperties();
const clientId = properties.getProperty('CLIENT_ID');
const clientSecret = properties.getProperty('CLIENT_SECRET');
return OAuth2.createService(serviceName)
.setAuthorizationBaseUrl(authorizationBaseUrl)
.setTokenUrl(tokenUrl)
.setClientId(clientId)
.setClientSecret(clientSecret)
.setCallbackFunction('authCallback_')
.setPropertyStore(PropertiesService.getUserProperties())
.setScope('write');
}
前回は、このgetMFInvoiceService_関数の解説をしました。
今日は、そのサービスが作成された後に行われている、認証URLの作成とそのつくりについて解説を続けます。
マネーフォワードクラウド請求書URLの認証用URL
認証用URLを取得する
サービスを作成された後、authorize関数でいうと6行目が実行されます。
getAuthorizationUrlメソッドは、その名の通り、認証用URLを取得するメソッドです。
これで取得した長ーい認証用URLをログ出力したのが以下の画面です。
これをブラウザで入力すると、マネーフォワードクラウド請求書APIの認証画面に遷移しましたよね。
認証用URLのつくり
さて、この認証用URLのつくりが、どのようになっているか見てみましょう。
ログ出力されたURLを見ると、つくりとしては、以下のようになっていることがわかります。
分解すると、以下のパーツにわけられます。
項目 | 値 |
---|---|
認証用ベースURL | https://invoice.moneyforward.com/oauth/authorize |
client_id | アプリケーション作成時に発行されたclient_id |
response_type | code |
redirect_uri | リダイレクトURL(アプリケーション作成時に入力したものと同じ) |
state | stateパラメーター |
scope | write |
認証用ベースURL、client_id、scopeについては、前回解説したとおりサービス作成時に設定したものでしたね。
response_type、redirect_uriおよびstateは、getAuthorizationUrlメソッド実行時に生成されるものです。
リダイレクトURLはこのプロジェクトのスクリプトIDを使えば作れるURLです。
stateパラメーターは悪意あるユーザーの攻撃を防ぐためのものですが、詳しくは以下記事で解説されているのでご覧ください。
つまり、getAuthorizationUrlメソッドは、サービス作成時に渡した設定値などを使って、認証用URLを生成するメソッドということです。
このURLにアクセスすることで、マネーフォワードクラウド請求書APIの認証画面を開くことができるというわけです。
まとめ
以上、OAuth2 for Apps Scriptライブラリはどうやって認証用URLを作成しているのかを解説しました。
次回は、マネーフォワードクラウド請求書APIの認証画面で許可された後の動作について解説します。
どうぞお楽しみに!
連載目次:【初心者向け】GASでマネーフォワード請求書API
マネーフォワード請求書APIを使用することで、GASからマネーフォワード請求書のデータを取得したり、操作をしたりすることが可能です。このシリーズでは、そのはじめの一歩として、マネーフォワード請求書APIとは何か?またGASによるアクセスの初歩をお伝えしていきます!- はじめてのマネーフォワード請求書API~その概要とおおまかな手順
- マネーフォワード請求書APIへのアクセスをテストしてみよう!
- GAS用のマネーフォワード請求書APIアプリケーションを作成する手順
- GASでAPIを操作をする強い味方「OAuth2 for Apps Script」ライブラリとその導入
- GASでマネーフォワードクラウド請求書APIへの認証とアクセストークンの取得を行う方法
- OAuth2 for Apps Scriptライブラリを使ってサービスを作るスクリプトを解説
- OAuth2 for Apps Scriptライブラリはどうやって認証用URLを作成しているのか
- OAuth2 for Apps Scriptライブラリはどうやってアクセストークンを取得するのか
- GASではじめてのマネーフォワードクラウド請求書APIへリクエスト
- マネーフォワードクラウド請求書APIから請求書一覧の取得をテストしてみよう!
- マネーフォワードクラウド請求書APIによる請求書一覧のデータを読み取ってみよう!
- GASでマネーフォワード請求書の請求書一覧を取得するスクリプト
- GASでマネーフォワードクラウド請求書の請求書一覧をスプレッドシートに書き出す方法
- マネーフォワードクラウド請求書の請求書一覧の全件をスプレッドシートに書き出すスクリプト