TROCCO®のHTTPコネクタでBASEの注文データを取得する方法

# はじめに
BASEは、誰でも簡単にECサイトを開設できるサービスです。
ECサイトを運営していこうとすると、顧客の注文状況を踏まえて、顧客のニーズを的確に理解しながら販売戦略を練る必要があります。

このとき、サービスにあるダッシュボードを見ながら現状を把握するのは重要ですが、データを自由に取り扱ってもう少し深く分析してみたいと思う人もいるはずです。
このときBASEでは、BASE APIを活用することで、注文データを外部に取得することができます。

今回の記事では、TROCCO®のHTTP(・HTTPS)コネクタでBASEの注文データを取得する方法を紹介します。

# 対象とする読者
- BASEの注文データを活用して、ECサイトの運営に活かしたい方
- データを取得するにあたって、TROCCO®の活用を検討している方

# そもそもHTTPとは？
「HTTPって何？」という読者の方もいると思うので、簡単な用語解説を行いたいと思います。

HTTPとはWebブラウザ上でリクエストを投げると、取りたい情報が返ってくる仕組みです。
TROCCO®には[転送元のコネクタの1つとしてHTTP（・HTTPS）](https://documents.trocco.io/docs/data-source-http)が存在し、TROCCO®でデータを取得することができます。


![about-http.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/94a77ae3-78e8-56c5-2b89-29b5a3ce9d3f.png)
引用元: 『HTTPとは？HTTPSとの違いをサイト移行で実施するリダイレクト設定などをもとに解説』 [アイティーエムHPより](https://www.itmanage.co.jp/column/about-http-https/)

# 事前準備
### TROCCO®アカウントの作成
まずはTROCCO®のアカウント作成から始めましょう。
TROCCO®では無料で利用開始できるフリープランがあります。

https://trocco.io/lp/index.html

### BASEアカウントと注文データの準備

:::note warn
本記事ではBASEのアカウント上に注文データ（orders）のデータがあることを前提としています。
:::

https://thebase.com/

# BASE APIの認証設定
次にBASEから注文データをとるために、BASE APIの認証設定を行います。

:::note warn
API(Application Programing Interface)という用語がわからない方は、[こちらの記事](https://www.ntt.com/business/sdpf/knowledge/archive_10.html)などを参考にしてください。
:::

認証設定には以下2つのステップで行なっていきます。

- BASE DevelopersからBASE APIの利用申請
- TROCCO®でのOAuth2.0の設定

なお、今回APIの認証方法として、OAuth2.0という方式を採用します。

OAuth2.0とは、ユーザーが直接情報を入力することなく、WEBサーバーが間接的に発行したユーザー情報を認証する方法になります。
そのため、セキュリティ的に優れた認証・認可の仕組みになります。

OAuth2.0の詳しい仕組みを知りたい方は、Google Cloud [OAuth2.0の概要](https://cloud.google.com/apigee/docs/api-platform/security/oauth/oauth-introduction?hl=ja)などを参照してください。

### BASE DevelopersからBASE APIの利用申請
BASE APIの利用には、BASE Developersサイトでの申請が必要です。

申請をするにあたり、BASEの「ショップ設定>運営に関する情報」で電話番号が認証されている必要があります。お済みでない方は認証をお願いします。

![スクリーンショット 2024-07-31 13.42.59（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/0c609ea7-d7cb-d631-8d52-4f8beb2b00b0.png)

では実際の申請に移っていきます。
[トップページ左下](https://developers.thebase.com/)の「申請する」ボタンを押下します。

![スクリーンショット 2024-07-18 15.04.21 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/6e42d622-1000-67ed-e605-3d99cf3cf920.png)

画面遷移後、今回利用するTROCCO®の情報を記載していきます。
利用権限には「注文情報を見る」にチェックを入れます。

![スクリーンショット 2024-07-18 15.12.59 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/63fa6e9c-e245-ac68-fbff-cc87a30077ed.png)

コールバックURLは、TROCCO®側で認証できるような設定にする必要があります。
TROCCO®ヘルプセンター[「HTTP・HTTPSの接続情報」のクライアントアプリ設定情報](https://documents.trocco.io/docs/connection-configuration-http-https)に記載の通りで設定します。

```
https://trocco.io/connections/http/callback
```

最後に、開発者情報に住所等の個人情報を記載し、「申請する」ボタンを押下します。

![スクリーンショット 2024-07-18 15.46.09 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/02e264c2-4986-d253-73de-3b34bb777c00.png)

申請後、次のステップ以降で使う`client_id`と`client　secret`が記載されてるのを確認し、申請終了となります。

![スクリーンショット 2024-07-31 11.56.48 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/6af91166-5fd8-55e0-728a-eefba9534ad8.png)

### TROCCO®でのOAuth2.0の設定
次に作成したBASE APIで申請した情報を元に、TROCCO®でBASE APIの認証設定を行なっていきます。

まず、TROCCO®のホーム画面の「接続情報一覧」から「接続情報の新規作成（サービスの選択）」を行い、「HTTP・HTTPS」を選択します。

![スクリーンショット 2024-07-22 17.28.05 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/c27407d8-e9ca-cc02-ed17-02f573cea35f.png)

「HTTP・HTTPS」選択後、「接続情報の作成・設定」画面に飛び、「作成したアプリ情報の入力へ」ボタンを押下します。
以前に設定した、「コールバックURL」はここからも確認ができます。

![スクリーンショット 2024-07-22 17.26.44 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/b2e228c3-b882-4c66-9b05-ec7f1ed12c3c.png)

画面遷移後、BASE APIの認証情報を入力していきます。

TROCCO®ヘルプセンター[「HTTP・HTTPSの接続情報」](https://documents.trocco.io/docs/connection-configuration-http-https)とBASE API公式[「oauth/authorize」](https://docs.thebase.in/docs/api/oauth/authorize#get-1-oauth-authorize)・[「oauth/access_token」](https://docs.thebase.in/docs/api/oauth/access_token)を参考に、以下の表のように設定します。

|設定項目|内容|
|:-|:-|
|グラントタイプ|認可コード|
|クライアントID|`client_id`|
|クライアントシークレット|`client　secret`|
|認可URL|`https://api.thebase.in/1/oauth/authorize`|
|アクセストークンURL|`https://api.thebase.in/1/oauth/token`|
|スコープ|read_orders|

![trocco_BASE_接続情報_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/d36f8849-13ce-efcb-fdc9-13872f6dfd29.png)

認証に成功すると、BASE APIの事前準備は完了です。

# 転送設定の実装
最後にTROCCO®でデータを取得していきます。
今回の記事では、転送先にはデータウェアハウスの[Google BigQuery](https://cloud.google.com/bigquery?hl=ja)を採用しました。

では、実際の転送設定に移っていきます。
TROCCO®にログインし、転送設定の新規作成に進み、以下を選択します。
- 転送元 HTTP・HTTPS
- 転送先 BigQuery

![スクリーンショット 2024-07-24 14.36.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/1f627f3e-d4c5-0017-7be8-74f0163c62bd.png)

### 転送元の設定
初めに、「TROCCO®でのOAuth2.0の設定」の章で設定した「HTTP・HTTPS」接続情報を選択します。

カスタム変数機能についても設定を行います。
今回はBASE APIのパラメータで使用する、`$start_date$`と`$end_date$`を設定します。
BASE APIの仕様に合わせて、日付フォーマットを`%Y-%m-%d`で設定します。

![trocco_step1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/1183ba72-09b5-65c0-5695-36e376087ba9.png)

BASE API公式の[「はじめに」](https://docs.thebase.in/docs/api/)と[「orders」](https://docs.thebase.in/docs/api/orders/)を参考に、TROCCO®で設定する際は以下表の通りとなります。
表にない項目はデフォルトの値で問題ありません。

|設定項目名|設定内容|
|:-|:-|
|URL |`https://api.thebase.in/1/orders`|  
|HTTPメソッド |GET|
|文字エンコーディング  |UTF-8|
|ファイル入力形式|JSONPath|
|JSONPath|$.orders|
|パラメータ`start_ordered` |`$start_date$`|
|パラメータ`end_ordered` |`$end_date$`|

![trocco_step1 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/b9306629-d690-4f05-62f0-710d3a709a43.png)

パラメータ`start_ordered`と`end_ordered`は、「注文日時はじめ」と「注文日時おわり」をそれぞれ指します。

今回は、弊社BASE環境の都合上、600日前から実行日時点までで設定しています。
ご自身の環境に合わせて、必要な日数に変更してご利用ください。

その他のパラメータも含め詳細は、BASE API公式の[「orders」のリクエストパラメーター](https://docs.thebase.in/docs/api/orders/)をご確認ください。

### 転送先の設定
転送先の設定で、Google BigQuery接続情報、データセット、テーブル、データセットのロケーション、転送モードを設定します。

![trocco_step1 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/bae534ee-4d7a-5750-53e0-6061078f629c.png)

STEP2の画面に進むと、転送するデータのプレビューを確認することができます。


![trocco_step2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/7981cbc4-fc0c-fb95-e0df-54434a5d4315.png)

各項目の詳細は、BASE API公式の[「orders」の解説](https://docs.thebase.in/docs/api/orders/)からご確認ください。

テーブル定義やデータ型などは自動設定のままで問題ないので、確認・保存と進みます。

# 実行結果
転送実行後、BigQueryのプレビュー画面で、転送したデータが入っていることを確認できました。

![03_bigquery_data.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/3e933bec-865e-2d91-da78-89093e68390e.png)

# まとめ
ここまで、TROCCO®のHTTP(・HTTPS)コネクタでBASEの注文データを取得する方法を紹介してきました。

BASE APIから注文データを取得することで、販売戦略を考える上での分析を自由度高く行うことができます。

また、在庫データもAPIから取得することができ、注文状況に合わせた在庫管理といった発展的な利活用も見込まれます。

このように注文データは、ECサイトを運営する上での様々なシーンに利用することができます。BASEでECサイトの運営されている方は、ぜひ活用してみてください！