Node.js
square

Square公式Node.jsライブラリがリリースされました!

SquareのWeb API、Square ConnectはRESTful APIなのでHTTPクライアントさえあれば利用できますが、それでもやはり専用ライブラリを使う方が分かりやすいでしょう。

これまでPHP/Python/Ruby/Java/C#向けにSDKをリリースしてきましたが、先日Node.js/JavaScript向けSDKがリリースされました。

こちらはそのファーストインプレッションです。

インストール

Node.js向けなのでnpmでインストールできます。

$ npm install square-connect --save

使い方

ロケーションAPIを使って全店舗情報を取るサンプルです。

const SquareConnect = require('square-connect');
SquareConnect
  .ApiClient
  .instance
  .authentications
  .oauth2
  .accessToken = 'YOUR_TOKEN';

let api = new SquareConnect.LocationsApi();
api
  .listLocations()
  .then((locations) => {
    console.log('Locations :');
    console.log(JSON.stringify(locations));
  }, (err) => {
    console.error(`Error! ${err.status}, ${err.response.text}`);
  });

アクセストークンは Square Developer Portal で取得できるもの、またはOAuth2を使って取得できます。トークンを適用するまでのメソッドチェーンがかなり長い印象ですね。OAuth2以外の認証をサポートするためだと思われますが。

メソッドの返り値はPromiseになりますので、よくあるネットワーク系ライブラリと同じように書けます。エラー時にはHTTPレスポンスオブジェクトがそのまま返ってきます。

処理成功時の返り値は次のような内容です。

{
    "locations": [
        {
            "address": {
                "address_line_1": "中 1丁目", 
                "administrative_district_level_1": "国立市", 
                "country": "JP", 
                "locality": "東京都", 
                "postal_code": "186-0004"
            }, 
            "business_name": "ヤマモト 東京", 
            "capabilities": [
                "CREDIT_CARD_PROCESSING"
            ], 
            "id": "CBA...gAQ", 
            "merchant_id": "M1D75B5QATKAK", 
            "name": "ヤマモト 東京", 
            "status": "ACTIVE", 
            "timezone": "Asia/Tokyo", 
            "type": "PHYSICAL"
        }
    ]
}

Squareの開発者ドキュメントおよびGitHubリポジトリのドキュメントはかなり充実しているので、実装したい内容がすぐに見つかるでしょう。ぜひ試してみてください。

square/connect-javascript-sdk: Javascript client library for the Square Connect APIs https://docs.connect.squareup.com/