関係者外秘展示会用カスタムプロファイル 及び サンプル実装の説明

エボルブアイティワークス株式会社

関係者外秘カスタムプロファイルサンプル プロファイル概要
RobotExhibitionService（Service）

RobotExhibitionService2（Service兼Robot）

CLtoSV・transfer_enquete_data_profile
実装プロファイル
・EnqueteProfile_Service
・ApproachingNotification_Service
・SnsOauthProfile_Service

実装プロファイル
・EnqueteProfile_client

SVtoCL・transfer_enquete_data_profile

CLtoSV
・get_enquete_data
・answer_enquete

実装プロファイル
・EnqueteProfile_client・ApproachingNotification_client・CutomProfile_SnsOauthProfile_client（おまけ）RobotExhibitionMain（Robot）

サンプル実装 起動方法その１
1.

RobotExhibitionServiceを開始
a.
Tomcatにて起動b.
パス設定例は右記参照

2.

RobotExhibitionService2を開始
a.
Tomcatにて起動b.
パス設定例は右記参照
c.
起動後、自動でRobotExhibitionServiceに接続し、EnqueteProfileのスタートが行われ、transferEnqueteDataの準備が完了する

3.

transferEnqueteDataの実行
a.
CLtoSV(RobotExhibitionService2からRobotExhibitionServiceへ)の実行
i.
下記URLを開くと自動で実行され、Service側へデータが送信される
1.
http://localhost:8080/RobotExhibitionService2/transferEnqueteii.
Service側での実装により、コンソールに出力される

b.

SVtoCL(RobotExhibitionServiceからRobotExhibitionService2へ)の実行
i.
下記URLを開くと自動で実行され、Robot側へデータが送信される
1.
http://localhost:8080/RobotExhibitionService/transferEnqueteii.
Robot側での実装により、コンソールに出力される関係者外秘サンプル実装 起動方法その２
1.

RobotExhibitionMainの実行
a.
Main.javaの実行を行うことにより以下のプロファイルが実行される
i.
snsOauthProfile
1.
startProfile2.
setTwitterOautha.
認証情報の送信3.
setFacebookOautha.
認証情報の送信4.
setgooglePlusOautha.
認証情報の送信ii.
ApproachingNotificationProfile
1.
startProfile
2.
sendApproachingNotification_profilea.
ロボット接近の通知
iii.
EnqueteData
1.
startProfile
2.
getEnquete
a.
設問の取得
3.
answerEnquetea.
回答をServiceへ送信

2.

ApproachingNotificationProfileのSVtoCLの実行a.
以下のURLを表示し、SVtoCLのreceiveApproachingNotificationの実行が可能b.
http://localhost:8080/RobotExhibitionService/sendApproachingNotification

関係者外秘EnqueteProfile概要
●
●

●

関係者外秘

アンケートの設問と回答を、転送するプロファイル
CLtoSV○

startProfile()■
プロファイルの開始○

endProfile()■
プロファイルの終了○

getEnquete(String enquete_id,String responder_id)■
enquete_id(アンケート固有のIDを想定)とresponder_id(回答者固有のID)から、アンケートをServiceから取得する■
戻り値は「EnqueteData」詳細は後述○

answerEnquete(String enquete_id, String responder_id,AnswerData answerData)■
回答を行ったenquete_id、回答者responder_id、回答内容AnswerDataをServiceへ送信する○

transferEnqueteData(String responder_id,EnqueteData enqueteData, AnswerData answerData)■
回答者が回答した設問EnqueteDataと回答AnswerData を同時にServiceへ転送する

SVtoCL○transferEnqueteData(String responder_id,EnqueteData enqueteData, AnswerData answerData)■
回答者が回答した設問EnqueteDataと回答AnswerData を同時にRobotへ転送する■
CLtoSVの逆EnqueteProfile概要その2
●

IDの概要
○
enquete_id■
設問群の固有のID■
設問ごとのIDは、question_id○
question_id■
設問ごとのID○
responder_id■
アンケートに回答した人(robot_idを想定だが、別のIDでも問題ない)●

Data群の概要○
EnqueteData■
enquete_idに対する設問群○
Enqute■EnquteDataに属する設問■
設問は、question_idの1つに対応する■設問は、複数の選択肢を保持する○○

AnswerData■
EnqueteDataに対する回答群■
Answer■AnswerDataに属する回答■
回答は、question_idの1つに対応する関係者外秘

関係者外秘AnswerDataのStartDate EndDateについて●

AnswerDataと、それに付随する Answerには、それぞれ StartDateとEndDateがある○ AnswerData■ startAnswerDataDate● アンケート全体の設問開始時間■ startAnswerDataDate● アンケート全体の設問終了時間○ Answer■ startAnswerDate● 設問単位の設問開始時間■ endAnswerDate● 設問単位の設問終了時間

実装例:
アンケート開始
1問目▽startAnswerData(その1)△startAnswerDataDate

1問目終了
2問目開始
▽startAnswerData(その2)▽endAnswerData(その1)

2問目終了
アンケート終了▽startAnswerData(その2)△endAnswerDataDate

EnqueteDataのXML構造(参考)<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:enquete_profile xmlns:ns2="http://www.robotservices.org/schemas/EnqueteQuestionData"><euquete_id>enquete_id_1</euquete_id><beforeEnqueteAnnotation>アンケート前注釈</beforeEnqueteAnnotation><afterEnqueteAnnotation>アンケート後注釈</afterEnqueteAnnotation><enqueteList><enquete><question_id>ID1</question_id><beforeQuestionAnnotation>設問1前注釈</beforeQuestionAnnotation><afterQuestionAnnotation>設問1後注釈</afterQuestionAnnotation><question>設問１</question><answers>回答１</answers><answers>回答２</answers><answers>回答３</answers></enquete><enquete><question_id>ID2</question_id><beforeQuestionAnnotation>設問2前注釈</beforeQuestionAnnotation><afterQuestionAnnotation>設問2後注釈</afterQuestionAnnotation><question>設問２</question><answers>２回答１</answers><answers>２回答２</answers><answers>２回答３</answers></enquete></enqueteList></ns2:enquete_profile>

関係者外秘AnswerDataのXML構造(参考)<answerData><enquete_id>enquete_id_1</enquete_id><answerList class="java.util.ArrayList"><answer><question_id>ID1</question_id><answer>回答１</answer><startAnswerDate>2015-11-12 19:43:24.736 JST</startAnswerDate><endAnswerDate>2015-11-12 19:43:24.845 JST</endAnswerDate></answer><answer><question_id>ID2</question_id><answer>２回答１ </answer><startAnswerDate>2015-11-12 19:43:24.845 JST</startAnswerDate><endAnswerDate>2015-11-12 19:43:24.949 JST</endAnswerDate></answer></answerList><startAnswerDataDate>2015-11-12 19:43:24.736 JST</startAnswerDataDate><endAnswerDataDate>2015-11-12 19:43:25.58 JST</endAnswerDataDate></answerData>

関係者外秘関係者外秘ApproachingNotification_Profileの概要●

端末（robot）の接近をサーバに通知するプロファイル●

CLtoSV○
startProfile()■
開始○
endProfile()■
終了○
sendApproachingNotification_profile(String to_robot_id, long distance_mm)■
端末がto_robot_idに対して近づいていることを、距離で通知する
SVtoCL○
RetValue receiveApproachingNotification(String from_robot_id, long distance_mm);■
from_robot_idが、通知先へ近づいてることを、距離と共に通知する●

receiveApproachingNotification(“robot_a”,1000)

sendApproachingNotification_profile(“robot_b”,1000)

1mに近づくrobot_arobot_b

SnsOauthProfileの概要
●
●

関係者外秘

端末側の認証情報をサーバに送信するプロファイル
CLtoSV○ startProfile()■ 開始 Robo_idを貰えるので、それをユーザーの IDとして使う○ endProfile()■ 終了○

RetValue setTwitterOauth(String consumer_key,String consumer_secret, String
token_secret, String access_token,String screen_name)■ TwitterのOauth情報のサーバ送信○

RetValue setFacebookOauth(String application_id, String access_token, Sring expire_in)■ FacebookのOauth情報のサーバ送信○

RetValue setgooglePlusOauth(String application_id,String client_id,String client_secret,String access_token,String token_type,String expires_in,String refresh_token)■ GooglePlusのOauth情報サーバ送信

SNS認証情報●Twitter○
開発側固有Key■CONSUMER_KEY■
CONSUMER_SECRET○
ユーザー側固有Key■TOKEN_SECRET■ACCESS_TOKEN●

Facebook○
開発側固有Key■APPLICATION_ID○
ユーザー側固有Key■ACCESS_TOKEN■EXPIRE_IN●

Google+○
開発側固有Key■CLIENT_ID■
client_secret○
ユーザー側固有Key■
access_token■
token_type■
expires_in■refresh_token

関係者外秘