GASでMisoca APIを操作してみる【API認証編】

GASでMisoca APIを操作して請求書をまとめて作成するブログ記事のアイキャッチ MISOCA
本コンテンツはAUTOMA ITが制作した独自コンテンツです。また本コンテンツでは掲載するECサイト等から購入実績などに基づいて手数料をいただくことがあります。

必要な情報が揃ったので、次にAPI認証をGAS側で行います。

アプリケーション登録」がまだ済んでない場合は、前回記事をご覧ください。

今回使用するモノの確認

MISOCA(クラウド請求管理サービス)アカウント

無料プランからMisoca APIは使用可能です。すでにアカウントがある方はそちらを使用してもらって、アカウントを持っていない場合は、無料プランアカウントをサイトの説明に従って作成しておいてください。

Google Apps Script

任意のスプレッドシートから、Apps Scriptエディターを立ち上げてください

apps-script-oauth2

OAuth2 for Apps Script は、OAuth2 トークンを作成および承認し、有効期限が切れたときに更新する機能を提供する Google Apps Script のライブラリ。(Misoca APIの認証トークン管理用)

Misoca API

MISOCAを外部アプリケーションから利用するためのAPIです。(利用にはMISOCAアカウントが必要)

以上必要なモノの確認でした。

OAuth2 for Apps Script ライブラリの導入

GASでOAuth2認証を通すなら、とても便利なライブラリ「OAuth2 for Apps Script」を使うのが手っ取り早いです。

認証に必要なトークンの管理からリフレッシュまで、全部お任せできる賢いヤツです。

もしまだ利用したことがないなら、これを機にユーザーになってみてください。

では、先ほど「コールバックURL」を取得したGASエディターを開いて、

左側のタブ「ライブラリ」の+(プラス)をクリックします。

表示されたポップアップに「OAuth2 for Apps Script」のスクリプトIDを入力します。

スクリプトID

1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

入力できたらその下の「検索」ボタンを押してください。

すると、自動で上図のようにライブラリ候補が表示されます。

デフォルトでバージョンは最新のものが選択されますが、心配な場合はドロップダウンから一番大きい数字のバージョンを確認してください。

IDは「OAuth2」のまま変更せずに「追加」ボタンを押します。

無事に「OAuth2 for Apps Script」ライブラリが導入できました。

GASからMisoca APIアプリケーションの認証を通す

ここからGASにコードを書き込んでいきます。

//アプリケーションIDとシークレットの定義
const sp = PropertiesService.getScriptProperties();
const CLIENT_ID = sp.getProperty('CLIENT_ID');
const CLIENT_SECRET = sp.getProperty('CLIENT_SECRET');

//OAuth認証を行う関数
function run() {
  var service = getService_();
  var authorizationUrl = service.getAuthorizationUrl();
  Logger.log('Open the following URL and re-run the script: %s',authorizationUrl);
}

//サービスの設定
function getService_() {
  return OAuth2.createService('MISOCA')
      // エンドポイントURL
      .setAuthorizationBaseUrl('https://app.misoca.jp/oauth2/authorize')
      .setTokenUrl('https://app.misoca.jp/oauth2/token')

      // スコープ
      .setScope('write')

      // クライアントIDとシークレット
      .setClientId(CLIENT_ID)
      .setClientSecret(CLIENT_SECRET)

      // コールバック関数
      .setCallbackFunction('authCallback')

      // トークンの保存
      .setPropertyStore(PropertiesService.getUserProperties());
}

//OAuthコールバックのハンドリング
function authCallback(request) {
  var service = getService_();
  var authorized = service.handleCallback(request);
  if (authorized) {
    return HtmlService.createHtmlOutput('認証成功!');
  } else {
    return HtmlService.createHtmlOutput('認証失敗');
  }
}

まずは上のコードをコピーペーストして保存してください。

GASのプロパティサービスを利用する。

コードの冒頭に以下の箇所があります。

//アプリケーションIDとシークレットの定義
const sp = PropertiesService.getScriptProperties();
const CLIENT_ID = sp.getProperty('CLIENT_ID');
const CLIENT_SECRET = sp.getProperty('CLIENT_SECRET');

これは、万が一コードが流出した時に漏れてはいけない情報保全のために、「プロパティサービス」からIDとシークレットを呼び出しています。

呼び出すということは、その前に設定が必要なので、登録を行っていきましょう。

GASエディターの左端のタブの「歯車アイコン(プロジェクトの設定)」をクリックします。

プロジェクトの設定ページの最下段までスクロールすると、「スクリプト プロパティ」という項目があると思います。

スクリプト プロパティを追加」ボタンを押して、先の「CLIENT_ID」と「CLIENT_SECRET」を設定していきます。

上図のように、プロパティと値を入力して最後に必ず「スクリプトプロパティを保存」ボタンを押してください。ボタンを押さずにコードページなどに戻った場合、設定が保存されません

プロパティと値の対応は以下の通りです。

プロパティと値の対応

  • CLIENT_ID = MIsocaAPI アプリケーションID
  • CLIENT_SECRET = MIsocaAPI シークレット

Misoca APIのアプリケーションIDシークレットを忘れた場合は、以下のURLから確認してください。

Misoca(ミソカ) - クラウド請求管理サービス

認証を実行する

それではコードページに戻って、認証を実行していきたいと思います。

GASのコードページで「run」関数を実行してください。

関数が実行されると、画面下に「実行ログ」のコンソールが出てきます。

ログに出力された「Open the following URL and re-run the script: 」の後に続くURLをすべてコピーしてください。

そのURLをGASを実行したブラウザのアドレスバーに貼り付けて、Enterキーを押します。

URLに問題がなければ、Misoca APIアプリケーションの承認を求めるページが表示されます。

承認」ボタンを押して、「認証成功!」の文字が表示されればアプリケーションの認証は完了です。

お疲れ様でした、これでGASからMisoca APIを利用する準備が完了しました。

次は、いよいよMisoca APIを利用して情報取得をしてみたいと思います。

続きは、「GASでMisoca APIを操作して請求書をまとめて作成する【API 情報取得編】」記事をお待ちください。

この記事を書いた人
ヨシオン

ECやホームページ管理、サーバーレスプログラムなどを行なう仕事の傍ら、副業としていろんな実行環境で動くアプリ制作をしています

ヨシオンをフォローする
GASMISOCA
ヨシオンをフォローする

コメント

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