2019.06.26こんにちは!ITライターのもり(@moripro3)です!クラウド会計ソフトfreeeのAPIを使って経理業務を自動化する初心者向けシリーズ「はじめてのfreeeAPI」をお届けしています。前回の記事でGASとfreeeを連携する作業をして、いよいよGASでfreeeAPIを操作できるようになりました!【はじめてのfreeeAPI】GASとfreeeをつなぐ!連携認証の手順を一から紹介しますGoogleAppsScriptでクラウド会計ソフトfreeeのAPIを操作するシリーズ。GASでfreeeを操作するために必要な「freeeマイアプリの作成」と「連携」の手順を、画面キャプチャ盛りだくさんで丁寧に紹介しています。tonari-it.com2019.06.20今回の記事では、最も簡単なお題「事業所一覧の取得」で、これらの練習をしてみましょう。GASでfreeeAPIを操作し、freeeからデータを取得するfreeeAPIリファレンスの読み方を理解するGASでfreeeAPIを操作するメリットの1つが、CSVファイルを経由しなくても直接データのやりとりができることでした。API】GASを用いてGoogleスプレッドシートと連携するGASでfreeeに「データをください」というリクエストを送り、直接freeeからデータをもらう一連の流れをみていきましょう!(この記事はfreee株式会社さまとのコラボ企画です。使用するスプレッドシート事業所一覧を取得するリクエスト・レスポンスとはGETリクエストで事業所一覧を取得するコード事業所一覧を取得するコードの解説アクセストークンの取得リクエストに付与するパラメータリクエストURLリクエストURLの確認方法レスポンスの確認方法リクエストを送りレスポンスが返るまとめ連載目次:【GAS初心者向け】はじめてのfreeeAPI使用するスプレッドシート前回の記事で作成したスプレッドシートを引き続き使用します。Script)・認証コードは、今後もfreeeAPIを操作するために必要なので、シリーズを通して同じスプレッドシートを利用していきましょう。当記事の解説ではこのような名前にします。Company.gs事業所一覧を取得するこの記事のお題「GASでfreeeAPIを操作して事業所一覧を取得する」を進める前に、「なぜ最初に事業所一覧を取得するのか?」を紹介します。GASでfreeeAPIを操作することで、様々な操作が自動化できることをシリーズ初回にお伝えしました。他多数これらの処理をするためには、freeeAPIに対して「この事業所のデータを取得します(登録します)」という情報を伝える必要があります。freeeでは、1つのアカウントで複数の「事業所」を作成することができ、事業所ごとに固有の「事業所ID」が割り振られています。(1人で複数の事業を営んでいる場合、事業ごとに会計を分けた方が管理しやすいですよね)1つのアカウントで複数の「事業所」を作成できるので、GASでfreeeAPIを操作するときには、どの事業所に対する処理かを指定する「事業所ID」が必要になります。この「事業所ID」はfreeeの画面上では確認できません。そこで、freeeAPIを通じて事業所一覧を取得し、事業所IDを確認する必要があるのです。リクエスト・レスポンスとはこの項では、GASでfreeeAPIを操作するために必要な2つの用語を確認しておきましょう。リクエスト(要求)レスポンス(応答)人間同士のやり取りと似ています。「○○の作業をお願い」と要求し、「はい、○○の結果だよ」と応答が返ってくるイメージです。「リクエスト」とは、freeeのデータサーバに対して「~の処理をお願いします」と要求することで、その種類は4つあります。何らかの結果が返ってきます。これは連載を通じて紹介していきます。<リクエスト・レスポンスのイメージ>GETリクエストで事業所一覧を取得するコード処理の内容は「取得」なので、リクエストの種類は「GET」です。そのコードがこちらです。コードは後の項で詳しく解説するので、まずは実行してみましょう。params);Logger.log(response);//レスポンスをログ出力}下記のようなログが出力されれば成功です。1つのfreeeアカウントで作成している事業所のデータがすべて出力されます。(私は2つの事業所を作成しているので、2事業所が出力されています)出力結果“id”の値が「事業所ID」です。事業所一覧を取得するコードの解説この項では、コードの処理内容を1行ずつ解説していきます。アクセストークンの取得4行目で、freeeAPIのサービスから「アクセストークン」を取得しています。getService().getAccessToken();前回の連携作業で、GASとfreeeをつなぐための「freeeマイアプリ」を作成しました。アクセストークンとは、データサーバとは別の認証サーバが発行するもので、「freeeマイアプリが、ユーザーの代わりに、freeeデータの操作を許可されていることを示す証明書」です。この「証明書」は、悪意あるアプリの不正アクセスからAPIを守る技術であるOAuthという認証の仕組みで使われています。「事前に身元を確認(認証)済みであり、怪しい者ではありませんよ」という証明書です。(※説明を簡略化するために、下記イメージ図からfreeeマイアプリは省いています)この「証明書」を提示することで、データサーバからデータがもらえる仕組みです。リクエストに付与するパラメータ7~10行目では、リクエストする際に必要な2つのパラメータを設定しています。accessToken}//Bearerの後ろに半角スペースが入る};メソッドとは、リクエストの方法です。ここではデータの「取得」をするのでGETリクエストです。(メソッドを省略した場合はGETリクエストになるので記述しなくてもよいですが、ここでは、GETリクエストであることを明示するために記述しています)ヘッダーとは、APIにリクエストを送る際に必要な情報の一部です。OAuthのルールでは、Authorizationの値に、”Bearer”という文字列とアクセストークンを送ることが決められています。(※コードでは、Bearerの後ろに半角スペースが入っているのでご注意ください)ヘッダーについては「そういう決まりなんだな」と理解するだけで、難しく考えなくて大丈夫です。リクエストURL13行目で、事業所一覧を取得するための「リクエストURL」を指定しています。'https://api.freee.co.jp/api/1/companies';リクエストURLとは、APIにアクセスするためのURLです。操作したい内容によってURLが異なります。固定値となり、それに続く部分が操作内容によって異なります。リクエストURLの確認方法この項では、皆さんがリクエストURLを自分自身で確認できるよう、freeeAPIリファレンスの読み方を紹介します。リファレンスのページを開いたら、取得したい項目を探します。事業所」という項目を見つけましょう。該当部分をクリックして展開します。※パラメータ説明の部分で「データの取得はGET」と記述しました。ここでもメソッドの種類を確認できます。展開すると、概要などを確認できます。「Parameters」とは、「条件指定」のことです。取引一覧を取得するリクエストでは「yyyy/mm/dd以降の取引を取得する」といった条件指定が可能です。その場合、その「日付」がパラメータとなり、リクエストURLに付与します。parameters」と表記されているので「条件指定は不要」です。out」をクリックします。「Execute」をクリックします。URL」が、事業所一覧を取得する際のリクエストURLです。(その上部のCurlという項目は関係ないので無視して大丈夫です)レスポンスの確認方法Logger.logで、下記のようなログを確認できました。freeeAPIのレスポンスはJSON形式です。開発用テスト環境","role":"admin"}]}それぞれのパラメータの意味は、freeeAPIリファレンスで確認できます。Sample」の項目にサンプルが掲載されており、「パラメータ詳細」をクリックすると各項目を確認できます。“id”は「事業所ID」、“name”は「事業所名」といった、パラメータの詳細が確認できます。リクエストを送りレスポンスが返る15行目で「リクエスト」を送り、その結果である「レスポンス」を変数responseに格納しています。次の行でレスポンスの内容をログ出力しています。params);Logger.log(response);//レスポンスをログ出力GASで「リクエストを送る」機能が、UrlFetchサービスのfetchメソッドです。英単語のfetch(フェッチ)とは、取ってくる・呼んでくる、という意味です。パラメータ)以上が、GASでfreeeAPIを操作してデータを取得する一連の流れです。API」の第3回目では、これらを紹介しました。余裕のある方は、freeeAPIリファレンスを読み進めてみて、他の項目のデータ取得もぜひチャレンジしてみてください。今回のテーマは「freeeからデータを取得する方法」でした。次回は「freeeにデータを送る方法」をテーマにして紹介します。【はじめてのfreeeAPI】GASでリクエストを送りfreeeの事業所情報を更新するGoogleAppsScriptでクラウド会計ソフトfreeeのAPIを操作するシリーズ。PUTリクエストでfreeeの事業所情報を更新する方法・PUTリクエストのボディ(JSON)の作り方を紹介しています。tonari-it.com2019.06.27連載目次:【GAS初心者向け】はじめてのfreeeAPIGoogleAppsScriptを使用して「クラウド会計ソフトfreee」のAPIを操作する初心者向けシリーズ。APIで何ができるのか?連携方法は?を紹介しています。APIを操作してデータの取得・更新をしてみましょう。VBAを専門とするITライターです。退屈なことはプログラミングで片づけよう!自らの事務職経験を活かし、事務作業をとことんラクにできるITネタを発信していきます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。Scriptでtry~catch文でエラー処理をしていきます。チャットワークの翻訳チャットを例にエラーが発生したかどうかを判定して、エラーによって処理を分ける方法をお伝えします。Scriptを使用して、GmailのメッセージIDを取得・利用して、検索条件にヒットしたスレッドに含まれるメッセージのうち、新規メッセージのみをスプレッドシートに追記する方法を紹介しています。Scriptのクラス」をテーマにお送りしております。今回は、GASでスプレッドシートのデータの集合を表すクラスを作成する方法をお伝えしていきます。Scriptを使ってスプレッドシートの自作関数を作っています。APIを使って郵便番号から住所を求めるスプレッドシート関数を作ります。API初心者にもおすすめです。ScriptGASとチャットワークWebhookで即レスポンスのおみくじチャットを作る方法GASとチャットワークWebhookを連携させて、いろいろな便利ツールを作っています。今回は、GASとチャットワークWebhookを使って、すぐに返事が返ってくるおみくじチャットを作る方法をお伝えします。ScriptでチャットワークAPIを操作してチャットワークに期限付きのタスクを追加する方法です。その際に使うUNIX時間の取得方法、数値の固定小数点表記の方法についても触れます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。RowSourceプロパティとAddItemメソッド2020.01.21GASでGoogleスライドのSlideオブジェクトの概要とその取得方法2020.01.162020.01.24Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。