みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASによるマネーフォワードクラウド請求書APIの操作についてできる限りていねいに紹介をするシリーズをお送りしています。
前回の記事はこちら。
OAuth2ライブラリがどのようにアクセストークンを取得しているのかを解説しました。
ようやく、アクセストークンが取得できましたので、それを使ってマネーフォワードクラウド請求書APIの操作ができます!
ということで今回は、GASではじめてのマネーフォワードクラウド請求書APIへリクエストについてお伝えします。
では、行ってみましょう!
これまでのおさらい
さて、以前の記事でお伝えしているとおり、マネーフォワード請求書APIを使おうと思ったら、おおまかに以下の手順が必要になります。
- マネーフォワードクラウド請求書API用のアプリケーションの作成
- 認証とアクセストークンの発行
- マネーフォワードクラウド請求書APIにリクエスト
1のアプリケーションの作成は以下の記事でお伝えしました。
2の認証とアクセストークンの発行については、以下の記事以降でOAuth2ライブラリの解説とともにお伝えしました。
ということで、いよいよ3に到達できたわけです。
では、以下の記事でテストした事業者情報の取得をGASで行っていきたいと思います。
GASでマネーフォワードクラウド請求書APIの事業者情報の取得
では、GASでマネーフォワードクラウド請求書APIの事業者情報の取得をする方法をみていきましょう。
APIへのリクエストとレスポンス
GASでAPIへアクセスをするときには、以下のUrlFetchAppのfetchメソッドを使います。
マネーフォワードクラウド請求書APIに「これこれしてくれませんか~」と要求を投げます。これをリクエストをするといいます。
それで、今回の場合は、事業者情報が返ってきますが、その「返事」をレスポンスといいます。
レスポンスはResponseオブジェクトとして扱われ、その中からテキスト情報を取り出すのが以下のgetContentTextメソッドです。
引数のリクエストURLとパラメーターをどうするかですが、リクエスト先のサービスやその内容によってかわってきます。
リクエストURL
まず、リクエストURLですが、マネーフォワードクラウド請求書APIのドキュメントを見るとわかります。
Serversという欄にあるのが、ベースURLといって、すべてのリクエストに共通のURLの前半部分になります。
その下にやりたいこと別にメソッドとエンドポイントが記載されています。
ベースURLとエンドポイントを連結したものが、リクエストURLとなります。
つまり、事業者情報の取得で言うと以下がリクエストURLです。
パラメーター
パラメーターはいくつかのデータの集合で、オブジェクトで指定します。
以前、このドキュメントページでテストしたときのcurlコマンドがヒントになりますので再掲します。
GETはメソッドを表し、その次がリクエストURLですね。
これらは先ほどのドキュメントでも明らかでした。
その後に「-H」がついているのが、「~をヘッダーに追加しておくれ」というもので、マネーフォワードクラウド請求書APIへのリクエストには、以下の2種類のヘッダーを追加してあげる必要があります。
ヘッダー | 値 |
---|---|
accept | application/json |
Authorization | Bearer 8318************* |
Authorizationについては、OAuth2を使用する際にはいつも追加するもので、冒頭の「Bearer 」(※半角スペースわすれずに)はお決まり文句、つづく「8318~」ではじまる文字列がアクセストークンです。
アクセストークンは、OAuth2ライブラリのちからを借りて、以下のgetAccessTokenメソッドで取得できます。
以前作成した、getMFInvoiceService_関数を呼び出せば、マネーフォワードクラウド請求書API用のサービスは生成できますので、以下のコードでアクセストークンをaccessTokenに取得できます。
const accessToken = getMFInvoiceService_().getAccessToken();
つまり、以下のようなオブジェクトparamsをパラメーターとして渡してあげればよいということになります。
const params = {
method: 'get',
headers: {
accept: 'application/json',
Authorization: 'Bearer ' + accessToken
}
};
マネーフォワードクラウド請求書APIで事業者情報を取得する
まとめると、マネーフォワードクラウド請求書APIで事業者情報を取得するスクリプトは、以下になります。
function getOffice() {
const accessToken = getMFInvoiceService_().getAccessToken();
const requestUrl = 'https://invoice.moneyforward.com/api/v2/office';
const params = {
method: 'get',
headers: {
accept: 'application/json',
Authorization: 'Bearer ' + accessToken
}
};
const response = UrlFetchApp.fetch(requestUrl, params);
console.log(response.getContentText());
}
実行すると、以下のように事業者情報がログとして出力されます。
まとめ
以上、GASではじめてのマネーフォワードクラウド請求書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でマネーフォワードクラウド請求書の請求書一覧をスプレッドシートに書き出す方法
- マネーフォワードクラウド請求書の請求書一覧の全件をスプレッドシートに書き出すスクリプト