2. plusbenlly Architecture
Device &
Service partner
=チャネル
管理サイト for Business
partner
=チャネル
API
partner
Business
partner
Page. 21
ユーザー
2017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
3. Word Definition
Channel - チャネル?API of connecing benlly (ex. Facebook, Fitbit, Hue…)
benllyと連携するAPI(例?Facebook, Fitbit, Hue...)
Trigger - トリガー?Condition of fire actions.(ex. If post FB..)
アクションを実?をするための条件(きっかけ)。各チャネルの中に複数のトリガーが存在する。
Action - アクション?Output from benlly. (ex. Send command to devices, Post SNS…)
benllyからのアウトプット。(例?デバイスへコマンドを送ったり、SNSに投稿したり。)
各チャネルに複数のアクションが存在する。各チャネルに複数のアクションが存在する。
Idea - idea?Chain triggers and actions.
トリガーとアクションの組み合わせ
Page. 222017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
5. API接続までのフロー
【開発者インターフェイス上での作業】
◆step1. 開発者ページにアカウント登録
◆step2. サービスを作成
作成すると、client id/client secretが付与されます
◆step3. サービスに対し使うチャネルを登録
例)hueを使?する場合、hue remote apiのclient key/client
secret/app idを登録しますsecret/app idを登録します
◆step4. ideaの作成(組み合わせの作成)
例)triggerはcustom trigger、actionはhueを使?する組み合わせ例)triggerはcustom trigger、actionはhueを使?する組み合わせ
を作成します。
Page. 242017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
※チャネルのtokenは、定期的に再認証してリフレッシュしてください。
6. API接続①
◆ t 1 li t id/ li t tを使用してAPIに 作成を依頼◆step1. client id/client secretを使用してAPIにuser作成を依頼
url: https://plusbenlly.com/api/oauth/token
method: POST
key value key value 備考
method: POST
Request Body: x-www-form-urlencode
Respose
key value
grant_type register
client id 開発者ページで取得したclient id
key value 備考
token_type Bearer
client_id 開発者ページで取得したclient id
client_secret 開発者ページで取得したclient secret
クなも を?成し 指定し く
expires_in 123455555 unixtime
access_token aaaaaaaaa APIに接続するのに使
?します
username ユニークなものを?成して指定してく
ださい
password ログインに必要なパスワード
refresh_token aaaaaaaaaa tokenをrefreshする際
に使?します
Page. 252017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
7. API接続①
◆ t 1 li t id/ li t tを使用してAPIに 作成を依頼◆step1. client id/client secretを使用してAPIにuser作成を依頼
url: https://plusbenlly.com/api/oauth/token
method: POST
key value key value 備考
method: POST
Request Body: x-www-form-urlencode
Respose
key value
grant_type register
client id 開発者ページで取得したclient id
key value 備考
token_type Bearer
client_id 開発者ページで取得したclient id
client_secret 開発者ページで取得したclient secret
クなも を?成し 指定し く
expires_in 123455555 unixtime
access_token aaaaaaaaa APIに接続するのに使
?します
username ユニークなものを?成して指定してく
ださい
password ログインに必要なパスワード
refresh_token aaaaaaaaaa tokenをrefreshする際
に使?します
Page. 262017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
8. API接続②
◆ t 2 各API(チ ネル)に接続 APIに接続するために リク ストの際にh d を付与してください◆step2. 各API(チャネル)に接続 APIに接続するために、リクエストの際にheaderを付与してください。
※register/login等のaccess tokenをリクエストする場合は必要ありません。
ユ ザ認証後のAPIアクセスのための共通項目ユーザ認証後のAPIアクセスのための共通項目
Authorization: Bearer <取得したaccess token>
X-Benlly-Request-Device: webX Benlly Request Device: web
X-Benlly-Udid: <uniqueな端末id>
header samplep
Authorization: Bearer abababbababababbabababab
X-Benlly-Request-Device: web
X-Benlly-Udid: xxxxxxxxxxxxxxxxx
Page. 272017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
9. API接続③
# Filed Type 詳細
1 Error string エラーコードが?る。エラーコードは次の項?を確認すること
2 error description string エラーメッセージが?る
Error Respose
2 error_description string エラ メッセ ジが?る
Response Sample
{"error":"invalid credentials" "error description":"The user credentials were incorrect "}
# Code Text 詳細
1 200 OK 正常終了。
2 304 Not Modified データの更新に失敗。
{ error : invalid_credentials , error_description : The user credentials were incorrect. }
デ タの更新に失敗。
3 400 Bad Request 不正なリクエスト。やエラーメッセージを確認すること。
4 401 Unauthorized 認証されていないAPIを呼び出した場合
5 403 Forbidden アクセスできないAPI。
invalid_request リクエスト時にパラメータに過不?がある
not_found リクエストした対象リソースが?当たらない
access denied 権限などが?りずにサーバーがアクセスを拒否した
Error Code
6 404 Not Found 存在しないAPI。
7 500 Internal Server Error サーバー側の異常終了系のエラー。
8 502 Bad Gateway サービス停?中。リトライするようにしてください。
9 503 Service Unavailable サービス停?中。リトライするようにしてください。
access_denied 権限などが?りずにサ バ がアクセスを拒否した
invalid_credentials
ログイン認証時のユーザー名やパスワード名に不正があ
る
invalid_token 指定したアクセストークンに不正がある
invalid_scope 指定したアクセストークンに不正がある
サーバー側で何かしらのエラーがあって処理が続?不能
Page. 282017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
サ ビス停?中。リトライするようにしてください。
10 504 Gateway Timeout ゲートウェイ側でタイムアウト。リトライするようにしてく
ださい。
server_error
サ バ 側で何かしらのエラ があって処理が続?不能
になった場合
temporarily_unavailable メンテナンスモード時
10. API接続④
◆plusbenllyのuser login
uri: https://plusbenlly.com/oauth/token
methotd: POST
Request Body: x-www-form-urlencode
R
key value
grant_type password
key value 備考
token_type Bearer
Request Response
client_id 開発者ページで取得したclient id
client_secret 開発者ページで取得したclient secret
expires_in 123455555 unixtime
access_token aaaaaaaaa APIに接続するのに使?します
username ユニークなものを?成して指定してください
password ログインに必要なパスワード
refresh_token aaaaaaaaaa tokenをrefreshする際に使?します
Page. 292017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
15. API接続⑨
◆カスタムアクションのideaを実?した場合
例)hueのライトの状態を取得し、カスタムアクションでPOST
?type: webhook
h d
Content-Type: application/json
Request Body
{
設定パターン POSTされるデータフォーマット
?method: post
?content type:
application/json
送信タイプ: Separate
{
"oauth_client_idea_id": oauth_client_idea_id,
"user_idea_id": user_idea_id,
"action_id": action_id,
"light_name": "light name",
"light_id": "light id",
"on": "true or false",
"brightness": "value of brightness",
?送信タイプ: Separate
g g ,
"saturation": "value of saturation",
"hue": "value of hue",
}
Page. 342017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.