- 商品の開発方法
-
1. Tellusマーケットにて提供できるAPIの技術的な条件について
Tellusマーケットにて提供できるAPIはRESTに基づいて設計することを推奨しております。
すでにサービス提供しているREST APIがある場合はそれをそのままTellus Marketにリリースすることも可能です。
尚、商品提供の前にTellus運営事務局にてTellus Marketにてご提供いただくことが適切かどうかを判断する「商品審査」を行います。
2. APIのgatewayについて
Tellus Marketにてご提供いただくAPIはgatewayを通して動作する必要があります。以下の手順にてゲートウェイサーバーの設定を行ってください。
gatewayはリバースプロキシサーバとして動作します。
gatewayはTellus Market管理サーバー(https://sdk.tellusxdp.com)と通信を行い、認証や課金のための報告を行います。
gatewayはAPIと同じサーバーに設置することも、インターネット上の異なるサーバーに設置しても問題ありません。
3. Market SDK gatewayの設定方法について
Market SDK gatewayの詳細はTellusのGithubをご確認ください。
https://github.com/tellusxdp/tellus-market-sdk-gateway
「README.md」に従い、設定してください。インストールコマンドは以下になります。
curl https://raw.githubusercontent.com/tellusxdp/tellus-market-sdk-gateway/master/files/install.sh | sudo bash
4. gatewayのConfigファイルに必要な情報について
configファイルに必要な情報は以下となります。
・「商品ID」
・「集計用APIキー」情報を入手するにはTellus上への「商品の仮登録」が必要です。商品の仮登録の方法については「商品出品ガイド」をご確認ください。
「集計用APIキー」は商品のマーケット公開後に変更することができますが、gatewayの設定を新しい「集計用APIキー」に変更するまでカスタマーはAPIが利用できなくなります。
5. Configファイルの設定方法
config.yml にて、以下を参考に設定を行ってください。
▼ tellus-market-sdk-gateway
https://github.com/tellusxdp/tellus-market-sdk-gateway/blob/master/README.mdファイルに設定を行うことでgatewayは http.listen_address でListenしたポートに着信したHTTPリクエストのうち、認証を通過したものを upstream.url にリバースプロキシします。
6. gatewayの起動方法
APIサーバーの動作を確認したのちにgatewayにて以下のコマンドを入力することでgatewayが起動します。
sudo systemctl restart gateway.service
7. 動作確認方法
以下のサンプルコードで動作の確認をすることができます。
import requests, datetime, json
TOKEN = 'ダッシュボードでAPIアクセストークンを発行しここに貼り付けます' PRODUCT_ID = '商品ID' URL = '動作確認するAPIのURL' PATH = '動作確認するAPIのPATH' def get_market_token(payload={}): url = 'https://sdk.tellusxdp.com/api/manager/v2/auth/token/' headers = { 'Authorization': 'Bearer ' + TOKEN } r = requests.post(url, headers=headers, data=json.dumps(payload)) if r.status_code is not 200: raise ValueError('status error({}).'.format(r.status_code)) return json.loads(r.content) def exec_api(url, token, payload={}): headers = { 'Authorization': 'Bearer ' + token } r = requests.get(url, headers=headers, params=payload) return r.content
マーケットトークン取得 # 商品の審査が完了するまで base_url の代わりに null を返します。 # なお、プロバイダ自身で発行を行ったトークンであれば、商品の審査が完了する前でも base_url を返します。 payload = { 'product_id': PRODUCT_ID } ret = get_market_token(payload=payload) if ret['base_url'] is None: ret['base_url'] = URL # API実行 executed = exec_api(ret['base_url'] + PATH, ret['token'], {}) print('executed : {}'.format(executed))8. 確認手順
以下の手順にて、正しくAPIとgatewayが動作しtellusマーケットと連携が確立しているか確認ができます。
1. 商品を仮登録しているアカウントで、「アカウント管理」の「開発環境」からTellusのAPIアクセストークンを発行してください。
マーケットトークン発行APIを実行するには、APIアクセストークンが必要です。
APIアクセストークンはTellusHPトップの「アカウント管理」の「APIトークン」から発行することができます。購入していない商品の情報でマーケットトークンを発行しようとすると401エラーが表示されます。
発行時に設定した有効期限(最大60分)を過ぎるとマーケットトークンは使えなくなります。必要に応じて再発行してください。
マーケットトークン発行APIについて詳しくはこちらをご覧ください。発行したマーケットトークンを使ってAPIリクエストを行います。
2. 動作確認をするAPIのURLとパス・APIアクセストークン・商品情報(商品ID)をサンプルコード(Python)に記載してください。
※APIのURL・パスには、ゲートウェイを設定したサーバーのURL・パスを設定してください。
3.サンプルコードを実行し、httpステータス200が返ってくれば成功です。
マーケットトークンは、get_market_token()メソッドの戻り値で取得できます。
APIゲートウェイのログの一例・成功時:
Nov 30 15:22:37 api-test tellus-market-sdk-gateway[3875]: time="2020-11-30T15:22:37+09:00" level=debug msg="Request count: xxxx" product_id=xxxx
・失敗時(商品IDの不備):
Nov 30 15:25:03 api-test tellus-market-sdk-gateway[3254]: time="2020-11-30T15:25:03+09:00" level=debug msg="Invalid product id xxxx" product_id=xxxxx
・失敗時(集計用APIキーの不備):
Nov 30 15:25:38 api-test tellus-market-sdk-gateway[3315]: time="2020-11-30T15:25:38+09:00" level=error msg="Count request error: Invalid Status Code 401 {\"detail\":\"不正なトークンです。\",\"code\":\"authentication_failed\"}" product_id=xxxx