Posted at

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

More than 1 year has passed since last update.

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/