GASでAPIを操作をする強い味方「OAuth2 for Apps Script」ライブラリとその導入


allow

photo credit: HAMACHI! IMGP6558 via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASによるマネーフォワードクラウド請求書APIの操作についてできる限りていねいに紹介をするシリーズをお送りしています。

前回の記事はこちら。

GAS用のマネーフォワードクラウド請求書APIアプリケーションを作成する手順
マネーフォワードクラウド請求書APIの使い方についてできる限りていねいに紹介をするシリーズをお送りしています。今回は、GAS用のマネーフォワードクラウド請求書APIアプリケーションを作成する手順をお伝えします。

GAS用のマネーフォワードクラウド請求書APIのアプリケーションを作成する方法をお伝えしました。

さて、まだ少し先がありますので、少しずつ進めていきましょう。

今回は、GASでマネーフォワードクラウド請求書APIを操作をする際の強い味方となるライブラリ「OAuth2 for Apps Script」とその導入についてお伝えします。

では、行ってみましょう!

スポンサーリンク

これまでのおさらい

前々回の記事で、マネーフォワードクラウド請求書APIのドキュメントページのテスト機能を使って、マネーフォワードクラウド請求書へのアクセスをテストしました。

その手順は以下のとおりでした。

  1. マネーフォワードクラウド請求書API用のアプリケーションの作成
  2. 認証とアクセストークンの発行
  3. マネーフォワードクラウド請求書APIにリクエスト

1の手順で、アプリケーションを作成すると、Client IDとClient Secretという2つのコードが発行されました。

今度は、それら2つのコードを入力した上でドキュメントページの「Authorize」ボタンから、認証を行いました。

認証が成功すると、アクセストークンがゲットできます。

このアクセストークンが、実際にマネーフォワードクラウド請求書APIに命令をして操作するための「許可証」となり、マネーフォワードクラウド請求書を操作できるようになります。

さて、これと同じ段取りをGASでやろう!というわけですが、前回は1の手順、GAS用のアプリケーション作成までを終えたところとなります。

今回はその続き、2の手順を進めていくのですが、その際に使用するGASのライブラリ「OAuth2 for Apps Script」について紹介していきます。

OAuth2とは

このシリーズでは。GASでプログラムを作りマネーフォワードクラウド請求書を操作することを目指しているのですが、GASとマネーフォワードクラウド請求書は別々のサービスです。

マネーフォワードクラウド請求書なんて機密情報ばかりですから、マネーフォワードクラウド請求書APIに到着した命令をすべて「OK!OK!このデータあげるね」なんて、すべて許可していたらたいへんなことになります。

そこで、APIとしては「今受け取った命令は応えて良いものか」をきっちり判定をする仕組みが必要です。

その判定をきっちりする仕組みとして、スタンダードに使用されているのが「OAuth2(オーオース2)」です。

以下記事の言葉をお借りすると、

  • あらかじめ信頼関係を構築したサービス間で
  • ユーザーの同意のもとに
  • セキュアのユーザーの権限を受け渡しする

仕組みです。

第1回 OAuthとは?―OAuthの概念とOAuthでできること | gihyo.jp
今回から始まった「ゼロから学ぶOAuth」。全4回の特集にて、これからのWebサービスを開発する上で不可欠な技術「OAuth」について取り上げます。初回は、OAuthの概念について取り上げます。

Facebook、Twitterなど多くのサービスで使用されているもので、マネーフォワードクラウド請求書もそれに習っています。

前々回テストした、以下の手順は、実際にはOAuth2に沿った手順だったわけです。

  1. マネーフォワードクラウド請求書API用のアプリケーションの作成
  2. 認証とアクセストークンの発行
  3. マネーフォワードクラウド請求書APIにリクエスト

OAuth2 for Apps Scriptとは

GASのプログラムで、マネーフォワードクラウド請求書APIとのOAuth2のやり取りを実現したいということになりますが、OAuth2の処理はなかなかに複雑なので、それを全部GASで組むのは大変です。

しかし、その処理は多くのGASユーザーが望むもの…

そんな声に応えてくださるべく、ライブラリ「OAuth2 for Apps Script」が公開されています。

GitHub - googleworkspace/apps-script-oauth2: An OAuth2 library for Google Apps Script.
An OAuth2 library for Google Apps Script. Contribute to googleworkspace/apps-script-oauth2 development by creating an ac...

このライブラリを導入することで、GASからOAuth2を用いたサービス連携が容易になるのです。

ありがたや…!

ライブラリ「OAuth2 for Apps Script」を導入する

では、実際にライブラリ「OAuth2 for Apps Script」を導入していきましょう。

ライブラリを使用したいプロジェクトをスクリプトエディタで開き、メニューから「リソース」→「ライブラリ」を開きましょう。

スクリプトエディタのメニューからライブラリを選択

「図書館」(たぶん、ライブラリといいたいのだ)というダイアログが開くので、「Add a library」の欄に、以下「OAuth2 for Apps Script」のプロジェクトキーを入力して「追加」します。

プロジェクトキー: 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

ライブラリのプロジェクトキーを入力

「OAuth2」とタイトルの行が表示されますので、「バージョン」のプルダウンで最新のバージョンを選択して「保存」です。

ライブラリのバージョンを選択し保存

これにて、ライブラリ「OAuth2 for Apps Script」の導入は完了です。

あとはこのライブラリの機能を用いて、マネーフォワードクラウド請求書APIへの操作ができるようにスクリプトを組んでいきます。

まとめ

以上、GASでAPIを操作をする強い味方「OAuth2 for Apps Script」ライブラリとその導入についてお伝えしました。

OAuth2のしくみについて、少しずつでも理解は進んできたでしょうか。

まだ、不十分でも以降の記事で、繰り返し説明をしていきますので安心してください。

次回は、実際にマネーフォワードクラウド請求書APIへの認証をしていきます。

GASでマネーフォワードクラウド請求書APIへの認証とアクセストークンの取得を行う方法
GASによるマネーフォワードクラウド請求書APIの操作についてできる限りていねいに紹介をするシリーズです。今回は、GASでマネーフォワードクラウド請求書APIへの認証とアクセストークンの取得を行う方法をお伝えします。

どうぞお楽しみに!

連載目次:【初心者向け】GASでマネーフォワード請求書API

マネーフォワード請求書APIを使用することで、GASからマネーフォワード請求書のデータを取得したり、操作をしたりすることが可能です。このシリーズでは、そのはじめの一歩として、マネーフォワード請求書APIとは何か?またGASによるアクセスの初歩をお伝えしていきます!
  1. はじめてのマネーフォワード請求書API~その概要とおおまかな手順
  2. マネーフォワード請求書APIへのアクセスをテストしてみよう!
  3. GAS用のマネーフォワード請求書APIアプリケーションを作成する手順
  4. GASでAPIを操作をする強い味方「OAuth2 for Apps Script」ライブラリとその導入
  5. GASでマネーフォワードクラウド請求書APIへの認証とアクセストークンの取得を行う方法
  6. OAuth2 for Apps Scriptライブラリを使ってサービスを作るスクリプトを解説
  7. OAuth2 for Apps Scriptライブラリはどうやって認証用URLを作成しているのか
  8. OAuth2 for Apps Scriptライブラリはどうやってアクセストークンを取得するのか
  9. GASではじめてのマネーフォワードクラウド請求書APIへリクエスト
  10. マネーフォワードクラウド請求書APIから請求書一覧の取得をテストしてみよう!
  11. マネーフォワードクラウド請求書APIによる請求書一覧のデータを読み取ってみよう!
  12. GASでマネーフォワード請求書の請求書一覧を取得するスクリプト
  13. GASでマネーフォワードクラウド請求書の請求書一覧をスプレッドシートに書き出す方法
  14. マネーフォワードクラウド請求書の請求書一覧の全件をスプレッドシートに書き出すスクリプト

タイトルとURLをコピーしました