商品の開発方法

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アクセストークンはTellusウェブサイトトップの「アカウント管理」の「APIトークン」から発行することができます。

25-01.png

12-01.png

購入していない商品の情報でマーケットトークンを発行しようとすると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