Contents
スマレジAPIとは?
APIはApplication Programming Interfaceの略で、ソフトウェアが外部のサービスと連携がとれるようにするもののこと。
スマレジAPIを使うと、社内で使っているソフトなどとスマレジを連携し業務をより便利に、より効率的にすることができます。
しかしプログラミングのハードルは非エンジニアには高いものです。スマレジを導入している事業者の方の多くは、Microsoft office等の事務系ソフトはよく扱うものの、少しエンジニア寄りの話になるとよくわからないという方だと思います。
実のところ私もそうです。
「調べてみたけど専門的で何を言ってるかわからない……」
そんな状態になりますよね。
ただこんな私でもゼロの状態から、スマレジAPIをある程度触れるようになってきましたので、同じような境遇の方にぜひ参考にしていただけたら幸いです!
※スマレジプラットフォームAPIとスマレジAPIは別物です
スマレジAPIをGASで使う
なぜGASなのか?
GASはGoogleAppsScriptのことで”Googleによって開発されたスクリプトプラットフォームである軽量のアプリケーション開発のためのGoogleのワークスペースプラットフォーム。 主にGoogleのサービスを自動化するスクリプト言語”(Wikipediaより)です。
と説明は何やら難しいですが、ExcelでいうところのVBAみたいなものと思えばいいのかなと解釈しています。
GASでスマレジAPIを使うメリットですが、まず無料であること!Microsoft Officeは有料ですがGoogleの方は無料で、その割にできることも豊富です。導入あたって費用は大きな問題ですから、それが無料というのはかなり大きいメリットだと言えるでしょう。
また環境を整えるのに、何か特殊なソフトをインストールしたり、サーバーをレンタルしたりする必要もありません。インターネット環境とブラウザがあればアクセスできるので、始めるハードルがとても低いのです。
そしてGASではGoogleの各種サービスと連携できます。たとえばスプレッドシートやGoogleフォーム、Gmailなどを操作したりデータを取得したりできるので、スマレジから受け取ったデータを利用して業務を自動化することにもつながります。
最後にGASは利用している人もかなり多く、ネットにたくさん情報があります!
これのおかげで非エンジニアである私もある程度なんとかなっているので、スマレジAPIを使う入り口としてGASを利用してみることをおすすめします。
……というか私は今の所これしかGASでしか説明できないんですけどね。笑
もしGoogleアカウントをお持ちでない方は、無料ですので作っておいてください。
スマレジAPIを使う準備をしよう!
スマレジAPIは大きくわけで「受信」と「送信」にわかれます。今回は「受信」の方を解説します!
必要な情報は、
- 契約ID
- アクセストークン
の2つ。加えて
- 受信APIの有効化
- APIの権限
を設定する必要があります。
スマレジ管理画面を開き、左のメニューから設定>システム連携>スマレジAPI設定をクリックし、スマレジAPI設定画面を開きましょう!


受信APIの有効化
まずは受信機能を有効にします。
上から少し下がった位置に「API受信設定」「API送信設定」というタブがあります。デフォルトで受信設定が選択されているので、このまま下の受信設定を確認してください。
「1 受信機能を利用する」の選択を「利用しない」から「利用する」へ変更します。
契約IDの確認
契約IDを確認しておきましょう。受信機能を利用するしないの真下に契約IDが記載されています。これは後ほど使うので控えておいてください。
アクセストークンの発行
契約IDから2つ下にアクセストークンがあります。「>アクセストークン発行」を押すと、専用のアクセストークン文字列が発行されるので、これも控えておきましょう。なお外部に流出しないようご注意ください。
権限設定
最後に権限設定を行います。受信設定の下に機能設定の項目が列挙されているのが見えますでしょうか。デフォルトではすべて「利用しない」となっており、この状態だとすべての機能がロックされた状態となります。
必要なものだけ「利用する」に設定していけばOKですが、私はどれも必要になりそうでしたのでとりあえず全て利用するにしています。
GASでスマレジAPIを利用し、商品情報を取得してみる
スマレジAPIの利用設定が完了したら、準備完了です!
実際に情報が取得できるか試してみましょう。
スプレッドシートを新規作成し、ツール>スクリプトエディタを開きます。
デフォルトで入力されているコードを削除し、以下のコードを入力します。
function main(){ //定数 const smaregiId = "契約ID";//""の中をご自身の契約IDに置き換えてください const smaregiToken = "アクセストークン";//""の中をご自身のアクセストークンに置き換えてください const smaregiUrl = 'https://webapi.smaregi.jp/access/'; const processName = "product_ref"; const params = { "conditions":[{ "productId":"1" }], "table_name":"Product" }; const paramsJson = JSON.stringify(params); const option = 'proc_name='+processName+'¶ms='+paramsJson; let response = UrlFetchApp.fetch(smaregiUrl, { method: 'POST', headers: { "Content-Type": 'application/x-www-form-urlencoded;charset=UTF-8', 'X-contract-id': smaregiId, 'X-access-token': smaregiToken }, payload : option }) response = JSON.parse(response); console.log(response); }
これを実行すると商品ID1の商品情報が取得されコンソール(スクリプトエディタの下の方)の方に出力されたはず。
初めて実行する場合、スクリプトに許可を与えるダイアログが出てくるので、手順に従って許可してください。
もしエラーが出た場合は「入力が間違えていないか」「スマレジAPI設定を間違えていないか」等確認し再度実行しましょう!
商品ID1の商品を削除している場合は、params内の1を存在する商品IDに置き換えてみてください。
今回は一つの商品情報だけを取得してコンソールに出力しただけなので、このままだとあまり役には立ちません。しかしこれをベースに色々なデータを取得したり、スプレッドシート側で加工したりすることでどんどん便利になっていきます!
続きは当ブログで発信していく予定ですので、ブックマークやSNSのシェア等よろしくお願いいたします!また詳しい方の補足コメントなども大歓迎です!