rinkak 3D Print Cloud APIとは?rinkakが提供するデジタル製造サービスをクラウドサービスとして活用できるAPIです。面倒な製造管理、受発注管理、流通管理はrinkakがフルサポートしますので誰でも簡単にアプリやWEBサービスに3Dプリント機能を組み込むことが可能です。 |
rinkakにログインします。
画面右上のアイコンのプルダウンメニューから「アカウントの設定」へ移動します。
「rinkak Developerに登録する」というチェックボックスをONにします。
「更新する」ボタンをクリックすると登録完了です。
rinkak DeveloperをONにすると、「ショップの設定」に[shop_secret]が表示されます。
これはAPIリクエストで利用する文字列です。
rinkak developerに登録が完了していると、右上のアイコンのプルダウンメニューに「アプリ」の項目が追加されます。
「アプリ」に移動して、「アプリの新規登録」を行うことでアプリを作ることが出来ます。
「アプリ」に必要な項目は以下のとおりです。
Redirect URIはOAuth2.0のAuthorization Codeを受け取るサイトのURIを指定して下さい。
IconとNameはユーザに表示されます
Icon、Name、Description、Web Site URLはブランディング素材として利用します。
アプリの登録が完了するとclient_idとclient_secretが取得できます。これらを利用してOAuth2.0認証を行います。
各種APIをクライアントプログラムから利用するためには、OAuth 2.0 Protocolにより規定された認可を行うことが求められます。
この手順により、クライアントプログラムがどのようなAPIアクセスを行い、そしてどのような情報が参照または更新されるのか(これをスコープと呼びます)がユーザに提示されます。
ユーザの認証、および提示されたスコープについてユーザが同意した場合にのみ、クライアントプログラムはAPIにアクセスするための情報(トークンなど)を得ることができます。
URL | https://www.rinkak.com/oauth2/auth |
---|---|
(パラメータ) | |
client_id | アプリ情報で表示されているclient_idの値 |
redirect_uri | アプリ情報で設定したredirect_uriの値 |
scope | cart product |
https://www.rinkak.com/oauth2/auth?client_id=[アプリ情報のclient_id]&redirect_uri=[アプリ情報で登録したredirect_uri]&scope=cart productユーザはブラウザで下記のような認証認可の確認画面が表示されます。
[redirect_uri]?code=[Authorization Code]なお、ユーザが「許可しない」をクリックした場合はcodeパラメータの含まれない[redirect_uri]にリダイレクトされます。
URL | https://www.rinkak.com/oauth2/token |
---|---|
(パラメータ) | |
client_id | アプリ情報で表示されているclient_idの値 |
client_secret | アプリ情報で表示されているclient_secretの値 |
redirect_uri | アプリ情報で設定したredirect_uriの値 |
grant_type | authorization_code もしくは refresh_token |
code | ユーザ認証認可で取得したAuthorization Code |
curl -d client_id=[アプリ情報のclient_id] -d client_secret=[アプリ情報のclient_secret] -d redirect_uri=[アプリ情報で登録したredirect_uri] -d grant_type=authorization_code -d code=[Authorization Code] https://www.rinkak.com/oauth2/token正しくリクエストすると下記のようなJSON形式のデータが取得できます。
{"access_token": "[アクセストークン文字列]", "tokeny_type": "Bearer", "expires_in": 3600, "refresh_token": "[リフレッシュトークン文字列]"}tokenの有効期限を更新する場合はgrant_typeにrefresh_tokenを指定します。
要素名 | 型 | 説明 |
---|---|---|
access_token | String | 各APIにアクセスするためのトークン文字列 |
token_type | String | アクセストークンの種類。"Bearer"という値が返されます。 |
expires_in | Integer | アクセストークンが失効するまでの時間(秒) |
refresh_token | String | アクセストークンを更新する際に利用するリフレッシュトークン文字列 |
grant_type | String | authorization_code |
code | String | ユーザ認証認可で取得したAuthorization Code |
error要素 | 意味 |
---|---|
invalid_request | パラメータの指定ミス |
unsupported_grant_type | 不正なgrant_type |
invalid_grant | 不正なAuthorization Code |
invalid_token | 不正なトークンもしくは期限切れのトークン |
プロダクト情報を取得するには以下のURIにHTTP GETリクエストします。
product_secretもしくはshop_secretを指定する場合はPOSTリクエスで受け付けており、製造可能かつ非公開なプロダクトにもアクセスすることができます。
URL | GET https://www.rinkak.com/api/v1/product/info |
---|---|
(パラメータ) | |
product_id | プロダクト編集画面に表示されるproduct_idの値 |
URL | POST https://www.rinkak.com/api/v1/product/info |
---|---|
(パラメータ) | |
token | OAuth2.0で認証認可されたトークン文字列 |
product_id | プロダクト編集画面に表示されるproduct_idの値 |
product_secret | (OPTION) プロダクト編集画面に表示されるproduct_secretの値。非公開プロダクトの情報にアクセスする際に必要となる。公開プロダクトの情報にアクセスする際は不要。 |
shop_secret | (OPTION) アカウント情報画面に表示されるshop_secretの値。Shop内の公開/非公開プロダクトの情報にアクセスする際に必要となる。特定の非公開プロダクトの情報にアクセスしたい場合はproduct_secretかshop_secretのいずれかを利用する。 |
要素名 | 型 | 説明 |
---|---|---|
code | Integer | 成否フラグ。値の取得に成功した場合は0(ゼロ)、それ以外は不成功。 |
id | Integer | プロダクトID |
lang | String | 言語コード。例)ja |
currency_code | String | 通貨コード。例)jpy |
name | String | プロダクト名 |
shoulder | String | プロダクトのキャッチコピー |
description | String | プロダクトの説明 |
images | String配列 | プロダクト画像のURL |
price | Float | プロダクトの価格 |
material_ids | Integer | プロダクトの素材ID |
area | Float | プロダクトの面積(cm2) |
volume | Float | プロダクトの体積(cm3) |
size | String | プロダクトのサイズ(cm) |
original | Integer | オリジナルプロダクトのID。存在しない場合は-1。 |
cc | Integer | プロダクトがCreative Commonsで公開されているか否か。 0: 非公開, 1: CC-BY-NC-ND, 2: CC-BY-NC-SA, 3: CC-BY-NC, 4: CC-BY-ND, 5: CC-BY-SA, 6: CC-BY |
download | Integer | データがダウンロードされた数 |
view | Integer | プロダクトが閲覧された数 |
favorite | Integer | Favoriteされている数 |
score | Float | プロダクトの平均評価値 |
create | String | プロダクトが登録されたUTC日時。 フォーマット: yyyy-mm-dd HH:MM:ss |
ユーザに代わってサービス(アプリ)が指定のプロダクトをユーザのカートに追加するAPI。
これにより、サービス(アプリ)が独自のプロダクトをカートに追加でき、ユーザをそのまま購入へ導くことができます。
カートにプロダクトを追加した後の実際の購入フローはブラウザで行います。
カートにプロダクトを登録するには以下のURIにHTTP POSTリクエストします。
URL | https://www.rinkak.com/api/v1/addcart |
---|---|
各パラメータ | |
token | OAuth2.0で認証認可されたトークン文字列 |
product_id | プロダクト編集画面に表示されるproduct_idの値 |
product_secret | (OPTION) プロダクト編集画面に表示されるproduct_secretの値。製造可能かつ非公開プロダクトの情報にアクセスする際に必要となる。公開プロダクトの情報にアクセスする際は不要。 |
shop_secret | (OPTION) アカウント情報画面に表示されるshop_secretの値。Shop内の製造可能かつ公開/非公開プロダクトの情報にアクセスする際に必要となる。特定の非公開プロダクトの情報にアクセスしたい場合はproduct_secretかshop_secretのいずれかを指定する。 |
quantity | カートに追加するプロダクトの個数 |
material_id | 製造する素材ID。プロダクトが許可する素材IDのみ指定可。 |
要素名 | 型 | 説明 |
---|---|---|
code | Integer | カートにプロダクトを追加できたか否か。0:成功。 |
product_id | Integer | プロダクトID |
material_id | Integer | 素材ID |
quantity | Integer | カートに追加したプロダクトの個数 |
cart_url | String | ユーザのカート画面ページのURL。 |
素材情報を取得するには以下のURIにHTTP GETリクエストします。
URL | https://www.rinkak.com/api/v1/materials |
---|
要素名 | 型 | 説明 |
---|---|---|
id | Integer | 素材ID |
name | String | 素材名 |
minimum_thickness | Float | 当該素材の造形に必要となる最低厚み(mm) |
ショップ情報を取得するには以下のURIにHTTP GET/POSTリクエストします。shop_secretを指定することで、製造可能かつ非公開なプロダクトにもアクセスすることができます。
URL | GET https://www.rinkak.com/api/v1/shop/info |
---|---|
(パラメータ) | |
shop_id | ショップの設定画面に表示されるshop_idの値 |
URL | POST https://www.rinkak.com/api/v1/shop/info |
---|---|
(パラメータ) | |
token | OAuth2.0で認証認可されたトークン文字列 |
shop_id | ショップページもしくはショップの設定画面に表示されるshop_idの値 |
shop_secret | (OPTION) ショップの設定画面に表示されるshop_secretの値。ショップ内の公開/非公開プロダクトの情報にアクセスする際に必要となる。 |
要素名 | 型 | 説明 |
---|---|---|
shop | JSON | ショップ詳細 |
products | JSONArray | 簡易プロダクト情報のリスト |
要素名 | 型 | 説明 |
---|---|---|
name | String | ショップ名 |
icon | String | ショップアイコンのURL |
description | String | ショップの説明 |
要素名 | 型 | 説明 |
---|---|---|
currency_code | String | 通貨コード。例)jpy |
name | String | プロダクト名 |
shoulder | String | プロダクトのキャッチコピー |
images | String配列 | プロダクト画像のURL |
price | Float | プロダクトの価格 |
original | Integer | オリジナルプロダクトのID。存在しない場合は-1。 |
cc | Integer | プロダクトがCreative Commonsで公開されているか否か。 0: 非公開, 1: CC-BY-NC-ND, 2: CC-BY-NC-SA, 3: CC-BY-NC, 4: CC-BY-ND, 5: CC-BY-SA, 6: CC-BY |
favorite | Integer | Favoriteされている数 |
score | Float | プロダクトの平均評価値 |
create | String | プロダクトが登録されたUTC日時。 フォーマット: yyyy-mm-dd HH:MM:ss |
3DモデリングAPIは簡単な座標データを送信することで3Dプリントできるモデルデータ(OBJやWRL)を作ることができるAPIです。
指定した座標位置に立方体のカラーボックスを配置したモデルデータを作ることができます。
以下のURIにHTTP POSTリクエストします。
URL | POST https://www.rinkak.com/api/v1/model/make |
---|---|
(パラメータ) | |
client_id | アプリ情報で表示されているclient_idの値 |
length | (オプション)配置する立方体の1辺の長さ。単位はmm(ミリメートル)。default=1 |
data | JSON形式の2次元配列の文字列。各配列要素にはx,y,z座標と色情報を指定。 x,y,zは整数。色情報は16進数6桁の文字列。 (例) (x,y,z)=(0,1,2)に赤(FF0000)の立方体を配置する場合 data='[ [0,1,2,"FF0000"] ]' となります。 |
signature | data文字列の末尾にアプリ情報のclient_secretの文字列を連結した文字列にMD5ハッシュ計算した値(16進数文字列)。 (注)client_secretが外部に漏れないよう気をつけて管理して下さい。外部に漏れた可能性のある場合は「アプリ」から「client_secretをリセットする」をクリックして新たなclient_secretを生成して下さい。 |
data = '[ [0,0,0,"FF0000"], [1,0,0,"0000FF"], [0,1,0,"00FF00"], [0,0,1,"FFFFFF"] ]'
var data = '[ [0,0,0,"FF0000"], [1,0,0,"0000FF"], [0,1,0,"00FF00"], [0,0,1,"FFFFFF"] ]'; var secret = 'abcdef'; var signature = CryptoJS.MD5(data + secret); console.log( signature ); > '536d7f25b313fcace72089e0f6880540'このdataで指定した立方体の1辺の長さを2mmにする場合、以下の様なアクセスになります。
curl -d client_id=[アプリ情報のclient_id] -d length=2 -d data='[ [0,0,0,"FF0000"], [1,0,0,"0000FF"], [0,1,0,"00FF00"], [0,0,1,"FFFFFF"] ]' -d signature=536d7f25b313fcace72089e0f6880540 https://www.rinkak.com/api/v1/model/makeリクエストが成功したら以下の様な形のモデルを作ることができます。
要素名 | 型 | 説明 |
---|---|---|
code | Integer | 0で成功。それ以外の値は失敗。 |
label | String | 取得結果。 |
message | String | 取得結果に対するメッセージ。アクセスに失敗した時に参考にして下さい。 |
id | Integer | モデルデータのid。モデルデータを取得する際に必要になります。(成功した場合のみ) |
length | Integer | 指定した立方体の1辺の長さ(mm)。(成功した場合のみ) |
size | Integer | 配列データのサイズ。(成功した場合のみ) |
x | Integer | Xの要素数。(成功した場合のみ) |
y | Integer | Yの要素数。(成功した場合のみ) |
z | Integer | Zの要素数。(成功した場合のみ) |
本APIは3DモデリングAPIで作成したモデルを取得するAPIです。
本APIへアクセスするエンドユーザはOAuth2.0で認証済みである必要があります。
以下のURIにHTTP GETリクエストします。
URL | GET https://www.rinkak.com/api/v1/model/get |
---|---|
(パラメータ) | |
token | OAuth2.0で認証認可されたトークン文字列 |
id | モデルデータのid。 |
type | (オプション)取得する3Dモデルの種類(objかwrl)を指定。default=wrl |
要素名 | 型 | 説明 |
---|---|---|
code | Integer | 識別番号。 |
label | String | 取得結果。 |
message | String | 取得結果に対するメッセージ。 |