狠狠撸

狠狠撸Share a Scribd company logo
IoTオープンイノベーションプラットフォーム
plusbenlly利??法について
NECパーソナルコンピュータ株式会社
キュレーションズ株式会社
20
2017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
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.
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.
Word Definition
Page. 232017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
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は、定期的に再認証してリフレッシュしてください。
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.
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.
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.
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 メンテナンスモード時
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.
API接続⑤
◆ideaを使うための各チャネルの認証
uri: https://plusbenlly.com/api/v0.9/channels/{channel_id}/authorize
method: GET
認証完了後
の場合 下記にリダイレクトされますsuccessの場合、下記にリダイレクトされます
https://plusbenlly.com/api/channels/authorization_succeed
failの場合 下記にリダイレクトされますfailの場合、下記にリダイレクトされます
https://plusbenlly.com/api/channels/authorization_failed
Page. 302017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
API接続⑥
◆各userのidea(組み合わせ)登録 uri: https://plusbenlly.com/api/v0.9/ideas
method: POST
Request Body: x-www-form-urlencode
{
"trigger": {
"schema": {
"id" 取得した i id
{
"trigger": {
"schema": {
"id" 取得した i id
{
"data": {
"id": 7, →※ideaの変更?削除等に必要です。
" " "カスタムトリガ が発?すると ライトを点灯する"
例)custom triggerとhueのactionを組み合わせたideaを作成するjson sample
hue ONの場合 hue OFFの場合 Response Sample
"id": <取得したcustom trigger id>
}
},
"actions": [
{
"schema": {
"id": 1801
}
"id": <取得したcustom trigger id>
}
},
"actions": [
{
"schema": {
"id": 1801
}
"name": "カスタムトリガーが発?すると、ライトを点灯する",
"used": true,
"status": "available",
"executed_days": [],
"last_executed_at": "2017-06-09T20:12:35+09:00",
"last_manual_executed_at": "2017-06-09T20:12:35+09:00",
"created_at": "2017-06-09T20:12:35+09:00",
" d t d t" "2017 06 09T20 12 35 09 00"},
"items": [
{
"name": "light_id",
"value": "<指定したユーザのlight id>"
},
{
"name": "brightness"
},
"items": [
{
"name": "light_id",
"value": "<指定したユーザのlight id>"
},
]
}
"updated_at": "2017-06-09T20:12:35+09:00"
}
}
name : brightness ,
"value": "<明るさ: 1-254>"
},
{
"name": "hue",
"value": "<?:0-65535>"
}
]
}
]
}
Page. 312017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
]
}
]
}
API接続⑦
◆各userのidea(組み合わせ)削除 ◆各userのidea(組み合わせ)?時停?◆各userのidea(組み合わせ)削除
uri: https://plusbenlly.com/api/v0.9/ideas/{id}
method: DELETE
{id}: 削除したいidea id
◆各userのidea(組み合わせ)?時停?
uri: https://plusbenlly.com/api/v0.9/ideas/{id}/suspend
method: PUT
Request Body: x www form urlencode{id}: 削除したいidea_id
Request Body: x-www-form-urlencode
なし
Request Body: x-www-form-urlencode
なし
◆各userのidea(組み合わせ)変更
uri: https://plusbenlly.com/api/v0.9/ideas/{id}
method: PUT
◆各userのidea(組み合わせ)停?状態の解除
uri: https://plusbenlly.com/api/v0.9/ideas/{id}/resume
method: PUT
{id}: 変更したいidea_id
Request Body: x-www-form-urlencode
ideaの登録と同じもの
Request Body: x-www-form-urlencode
なし
Reponse
ideaの登録と同じもの
Page. 322017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
API接続⑧
◆カスタムトリガ を使ったideaの実?◆カスタムトリガーを使ったideaの実?
uri: https://plusbenlly.com/api/v0.9/custom_triggers/{custom_trigger_id}
method: POSTmethod: POST
Request Body:
{
"message": "test message"message : test message
}
bodyはactionに渡す内容。
custom_trigger_idはideaを作成した時に付与されます。
Page. 332017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
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.

More Related Content

plusbenlly meetiup how-to-use

  • 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.
  • 4. Word Definition Page. 232017 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.
  • 11. API接続⑤ ◆ideaを使うための各チャネルの認証 uri: https://plusbenlly.com/api/v0.9/channels/{channel_id}/authorize method: GET 認証完了後 の場合 下記にリダイレクトされますsuccessの場合、下記にリダイレクトされます https://plusbenlly.com/api/channels/authorization_succeed failの場合 下記にリダイレクトされますfailの場合、下記にリダイレクトされます https://plusbenlly.com/api/channels/authorization_failed Page. 302017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
  • 12. API接続⑥ ◆各userのidea(組み合わせ)登録 uri: https://plusbenlly.com/api/v0.9/ideas method: POST Request Body: x-www-form-urlencode { "trigger": { "schema": { "id" 取得した i id { "trigger": { "schema": { "id" 取得した i id { "data": { "id": 7, →※ideaの変更?削除等に必要です。 " " "カスタムトリガ が発?すると ライトを点灯する" 例)custom triggerとhueのactionを組み合わせたideaを作成するjson sample hue ONの場合 hue OFFの場合 Response Sample "id": <取得したcustom trigger id> } }, "actions": [ { "schema": { "id": 1801 } "id": <取得したcustom trigger id> } }, "actions": [ { "schema": { "id": 1801 } "name": "カスタムトリガーが発?すると、ライトを点灯する", "used": true, "status": "available", "executed_days": [], "last_executed_at": "2017-06-09T20:12:35+09:00", "last_manual_executed_at": "2017-06-09T20:12:35+09:00", "created_at": "2017-06-09T20:12:35+09:00", " d t d t" "2017 06 09T20 12 35 09 00"}, "items": [ { "name": "light_id", "value": "<指定したユーザのlight id>" }, { "name": "brightness" }, "items": [ { "name": "light_id", "value": "<指定したユーザのlight id>" }, ] } "updated_at": "2017-06-09T20:12:35+09:00" } } name : brightness , "value": "<明るさ: 1-254>" }, { "name": "hue", "value": "<?:0-65535>" } ] } ] } Page. 312017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved. ] } ] }
  • 13. API接続⑦ ◆各userのidea(組み合わせ)削除 ◆各userのidea(組み合わせ)?時停?◆各userのidea(組み合わせ)削除 uri: https://plusbenlly.com/api/v0.9/ideas/{id} method: DELETE {id}: 削除したいidea id ◆各userのidea(組み合わせ)?時停? uri: https://plusbenlly.com/api/v0.9/ideas/{id}/suspend method: PUT Request Body: x www form urlencode{id}: 削除したいidea_id Request Body: x-www-form-urlencode なし Request Body: x-www-form-urlencode なし ◆各userのidea(組み合わせ)変更 uri: https://plusbenlly.com/api/v0.9/ideas/{id} method: PUT ◆各userのidea(組み合わせ)停?状態の解除 uri: https://plusbenlly.com/api/v0.9/ideas/{id}/resume method: PUT {id}: 変更したいidea_id Request Body: x-www-form-urlencode ideaの登録と同じもの Request Body: x-www-form-urlencode なし Reponse ideaの登録と同じもの Page. 322017 NEC Personal Computers, Ltd. and Curations inc. Confidential. All rights reserved.
  • 14. API接続⑧ ◆カスタムトリガ を使ったideaの実?◆カスタムトリガーを使ったideaの実? uri: https://plusbenlly.com/api/v0.9/custom_triggers/{custom_trigger_id} method: POSTmethod: POST Request Body: { "message": "test message"message : test message } bodyはactionに渡す内容。 custom_trigger_idはideaを作成した時に付与されます。 Page. 332017 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.