ãµã³ãã«ã¢ããªãæ°åå±aiboãã«ã€ããŠçŽ¹ä»ããŠãããŸãããŸãã¯ããããã¯ãããŠãããŸãããïŒ
æ¬ããŒãžã§çŽ¹ä»ããŠããæé ããwebããŒãžãç»é¢ã¯ãã¹ãŠå ¬éåœæã®ãã®ã§ããææ°çã§ã¯ãUIãå€ãã£ãŠããå¯èœæ§ããããŸããã泚æãã ããã
çŸåšå ¬éãããŠãããµã³ãã«ã³ãŒãã¯ãè€æ°ã®aiboãç»é²ãããŠããã¢ã«ãŠã³ãã«å¯Ÿå¿ã§ããŠããªãéšåããããŸããããããããäºæ¿ãã ããã
äžèšã®ãããªæµãã§ããµã³ãã«ã¢ããªãæ°åå±aiboãã«ã€ããŠè§£èª¬ããªãããå®éã«éçºãããŠãããŸãããŸãã¯ãã®ã¢ããªãåãããŠã¿ããããšããæ¹ã¯ãéçºæé ã®é ç®ããã¯ãããŠãã ããã
- æºå
- ãµã³ãã«ã¢ããªãæ°åå±aiboããšã¯
- ã·ã¹ãã æ§æ
- ãã¡ã€ã«æ§æ
- ã³ãŒã解説
- éçºæé
- åäœç¢ºèª
ãŸãã¯ãGitHubãªããžããªããæ¬ãµã³ãã«ã¢ããªã®ãœãŒã¹ã³ãŒããããŠã³ããŒãããŸããããŠã³ããŒããã§ãããã奜ããªãã£ã¬ã¯ããªã«å±éããŠãããŸãããã
ãµã³ãã«ã¢ããªãæ°åå±aiboããšã¯ãaiboã«ããã¯ããããšèšããšãaiboã®æ°åã«å¿ããŠããŸããªãµããŸããå®è¡ããŠãããã·ã³ãã«ãªé£æºã¢ããªã§ãã
éçºå 容:
- aiboãæ€ç¥ããèšèãå€éšã«éç¥ããä»çµã¿ïŒEvents APIïŒã䜿ããaiboãããã¯ããããšèšããããšãã«ãaiboã®æ°åã«å¿ããŠã
ãšã£ãŠãåã¶
ãé¡ãæŽãä»èããã
ããã«ããšéãã
ã®ããããã®ãµããŸããå®è¡ãããŸããïŒAction APIïŒ - ãæ°åå±aiboãã®ã¢ããªã«ã€ããŠçŽ¹ä»ããé£æºãä¿ãwebããŒãžãäœæããŸãããã®ããŒãžãããé£æºããããã¿ã³ãæŒããšãäžå³ãé£æºç»é¢ã®æµããã®ããã«é£æºãé²ãããã«ããŸãã
æ¬ã¢ããªã§ã¯ãGoogle Cloud Platform (GCP) *1ãå©çšããŠããŸããæ¬ã·ã¹ãã ã®æ§æãäžèšã«ç€ºããŸãã
äžèšå³äžã®æ¿ãéè²ã§å²ãããç®æã¯ãå®éã«éçºããŠããwebã¢ããªã®ãããã¯ãšã³ã/ããã³ããšã³ãã«ããããŸãããŸããå³äžã®aibo Cloudã¯æ¢ã«çšæãããŠãããµãŒããŒã§ãaiboãšwebã¢ããªãäžç¶ããååšã§ãã
-
ããã³ããšã³ã
- Cloud Storage
- æ°åå±aiboã®é¡ãšãªãããŒãžã§ããæ°åå±aiboã«ã€ããŠãªãŒããŒã«çŽ¹ä»ããé£æºãä¿ããŸãããã®ããŒãžã«é 眮ãããŠãããé£æºããããã¿ã³ãéžæããããšã§ãå®éã«é£æºãéå§ãããŸãã
- Cloud Storage
-
ããã¯ãšã³ã
- Cloud Functions
- é£æºã¢ããªãšããªãŒããŒã®aiboãå®éã«é£æºãããæ©èœãæ ããŸãã
- aibo ããã®ã€ãã³ãéç¥ãåãåããŸããã€ãã³ãã«å¿ãããµããŸããaiboã«æ瀺ãã圹å²ããããŸãã
- Firestore
- é£æºäžã®aiboã«é¢ããæ å ±ãä¿åããŸããããšãã°ãdeviceIdã access tokenãªã©ãããã«ããããŸãã
- Cloud Functions
-
å€éšãµãŒããŒ
- aibo Cloud
- Events APIã Action APIã®æ¥ç¶å ãšãªããŸããaiboããã®ã€ãã³ãæ€ç¥ãaiboãžã®åäœæ瀺ã®äžç¶ãè¡ããŸãã
- Cloud Functionsã§ãããã€ãããµãŒããŒã®èªèšŒãè¡ããŸãã
- aibo Cloud
(*1) ã³ã©ã : GCP (Google Cloud Platform) ãšã¯ Google ãå±éããã¯ã©ãŠããµãŒãã¹ã§ããGCPã§ã¯ãwebéçºã«å¿ èŠãªå€çš®å€æ§ãªããŒã«ãã¯ã©ãŠãçµç±ã§æäŸãããŠããŸããäŸãã°ãGCPãµãŒãã¹ã®äžã€ã§ãã
Cloud Functions
ã䜿ãã°ããµãŒããŒã®æ§ç¯/ä¿å®ãªã©ã«ã€ããŠæèããããšãªããã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããããã«ãªããŸãããŸãCloud Functions
ã¯äœ¿çšãããåã®ã¿ã®åŸé課éå¶ãšãªããããå人éçºã®èŠæš¡ã§ããã°äœé¡ãªæéã§å©çšããããšãã§ããŸãã(æéã«ã€ããŠã¯ãå¿ ããèªèº«ã§å ¬åŒããŒãžãã確èªãã ãã)
ãã¡ã€ã«æ§æã¯ãäžèšã®éãã§ãã倧ãŸãã«ã¯GCPã®ãµãŒãã¹ããšã«ïŒCloud FunctionsãCloud StorageïŒãã©ã«ããŒãåãããŠããŸãã
.
âââ CloudFunctions
â âââ aibo_api_ctrl.py
â âââ main.py
â âââ requirements.txt
âââ CloudStorage
âââ callback.html
âââ index.html
-
CloudFunctions/main.py
- æ°åå±aiboã®ããã¯ãšã³ãåŽã¡ã€ã³åŠçã«ãªããŸããé£æºãAction APIãEvents APIãªã©ããã¹ãŠã®åŠçã®å€§æ ãããã«æžãããŠããŸãã
-
CloudFunctions/aibo_api_ctrl.py
main.py
ã§aibo_api_ctrl
ãšããŠèªã¿èŸŒãŸããã³ãŒãã§ããmain.py
ã«ãŠå®è¡ããå 容ã®è©³çŽ°ãèšè¿°ãããŠããŸãã
-
CloudFunctions/requirements.txt
- GCPãžã®ãããã€(*2)æã«å¿ èŠãªèšå®ãæžãããŠããŸãã
-
CloudStorage/index.html
- æ°åå±aiboã®ãããããŒãžãšãªãhtmlãã¡ã€ã«ã§ããé£æºã¢ããªã®ãšã³ããªãŒURLãšããŠèšå®ãããŸãã
- ããã³ããšã³ãã®ã³ãŒãã§ã¯ãç°¡åã«UIãæ§ç¯ããããã® CSS ãã¬ãŒã ã¯ãŒã¯ãšã㊠Bootstrap ãå©çšããŠããŸãã
-
CloudStorage/callback.html
- èªèšŒå®äºåŸã«ããªãã€ã¬ã¯ããããããŒãžã§ãããªãã€ã¬ã¯ãURLãšããŠèšå®ãããŸãã
- èªèšŒåŠçåŸã®çµæïŒ
èªèšŒå®äº
ãèªèšŒãšã©ãŒ
ãéä¿¡ãšã©ãŒ
ãªã©ïŒãæ瀺ããŸãã
(*2) ã³ã©ã : ãããã€ãšã¯ ãããã€ãšã¯ãããã°ã©ã ããã¡ã€ã«ãªã©ãå®éã«åãããç¶æ ã«ããããšãèšããŸããpythonãã¡ã€ã«ãhtmlãã¡ã€ã«ãåã«äœæããã ãã§ã¯ãã€ã³ã¿ãŒãããäžã§å®éã«åäœããç¶æ ã«ã¯ãªããŸãããäœæãããã¡ã€ã«ãåäœããããã«æ§ã ãªèšå®ãããããšãããããã€ã (æ¥æ¬èªèš³ïŒé åã»é 眮)ãšãããŸãã
ããã¯ãšã³ãã®åŠçå 容ããå®è¡ã®æµãã«æ²¿ã£ãŠè§£èª¬ããŠãããŸãã
1. å€éšããã®ãªã¯ãšã¹ãåŠçãã¡ã€ã³é¢æ°ã§åãåãããã®å 容ãèªã¿åã
CloudFunctions/main.py
# ..(çç¥)..
def hello_world(request):
# ..(çç¥)..
# ãªã¯ãšã¹ãæ
å ±ã®ååŸ
request_json = request.get_json()
print(request_json)
hello_world()
ã«æžãããŠããå
容ããæ¬ãµã³ãã«ã¢ããªã®ã¡ã€ã³åŠçãšãªããŸãã
hello_world()
ã¯ãå€éšããã®ãªã¯ãšã¹ãæ
å ±ïŒåŸè¿°ïŒãhello_world()
ã®åŒæ°request
ã«æ ŒçŽãããŠãåŒã³åºãããŸãã
ãŸãã¯ããã®request
ã®å
容ãjson圢åŒã«å€æããããã°ã©ã ã§èªã¿åããç¶æ
ã«ããŸãã
CloudFunctions/main.py
# ..(çç¥)..
# ãšã³ããã€ã³ãã®æ€èšŒ
if 'eventId' in request_json and request_json['eventId'] == 'endpoint_verification':
print("ãšã³ããã€ã³ãã®æ€èšŒ")
return request_json
# aibo APIã®å®è¡
if 'eventId' in request_json:
print("aibo APIã®å®è¡")
res = aibo_api_execute(request_json)
# ã¬ã¹ãã³ã¹
if res:
headers = {
}
return ('Success!', 200, headers)
else:
headers = {
}
return ('Failed', 500, headers)
# OAuthèªèšŒ
if 'code' in request_json:
print("é£æºåŠçã®å®è¡")
aibo_oauth_execute(request_json)
# ..(çç¥)..
return ('Success!', 200, headers)
json圢åŒã«å€æããrequest_json
ã«å¿ããŠãå®è¡ããå
容ãæ¯ãåããŸããäžèš3ã€ã®åŠçã®ãã¡1ã€ãå®è¡ããŸãã
- ãšã³ããã€ã³ãæ€èšŒ (aibo Cloudã«GCPãšã³ããã€ã³ãã®éç¥å ãèšå®ããŸã ã®é ã§åŸè¿°)
- aibo APIã®å®è¡
- OAuthèªèšŒ (é£æºãè¡ã)
CloudFunctions/main.py
# ..(çç¥)..
def aibo_app(access_token, device_id, eventId):
# ããã¯ããããšèšããããšã
if eventId == 'voice_command::goodmorning':
# aiboã®æ°åã0ãã2ã®æŽæ°ã§ã©ã³ãã ã«èšå®
kibun = random.randint(0, 2)
# æ°åã«å¿ããŠãµããŸããå®è¡
if kibun == 0:
print("ãšã£ãŠãåã¶")
res = aibo_api_ctrl.aibo_control_sync(access_token, device_id, 'play_motion', '{"Category":"overJoyed","Mode":"NONE"}') # ãšã£ãŠãåã¶
elif kibun == 1:
print("é¡ãæŽãä»èããã")
res = aibo_api_ctrl.aibo_control_sync(access_token, device_id, 'play_motion', '{"Category":"washFace","Mode":"NONE"}') # é¡ãæŽãä»èããã
else:
print("ãã«ããšéãã")
res = aibo_api_ctrl.aibo_control_sync(access_token, device_id, 'play_motion', '{"Category":"jiggle","Mode":"NONE"}') # ãã«ããšéãã
return res
else:
return True
å®éã«aiboã«APIå®è¡ãæ瀺ããŠããåŠçã«ã€ããŠè§£èª¬ããŸãã
aibo_app
ãšããé¢æ°ã®åŒæ°eventId
ã«ãaiboãæ€ç¥ããã€ãã³ãã®å 容ãäŒããããŸãã- äžèšã®
eventId
ãèŠãŠãããã¯ããããšèšãããå Žåã«ã ããaiboã«æ瀺ãåºãããã«ããŸãã - aiboã®æ°åã¯ã0ãã2ã®æŽæ°ã§ã©ã³ãã ã«èšå®ããŸãããã®ã©ã³ãã ãªæ°åã«å¿ããŠãå®è¡ããå 容ã決ããŸãã
- aiboã«æ瀺ããå
容ã¯ã
aibo_control_sync
ãšããé¢æ°ã§æå®ããŸãã - aiboã«æ瀺ããå 容ãäžèšã®é¢æ°ã«æž¡ããšãé¢æ°å éšã§Action APIãåŒã°ãaiboããµããŸããèŠããŠãããŸãã
æ°åå±aiboã¯ãäžèšã®æé ã§éçºããŠãããŸãã
æé | å 容 | äœæ¥å Žæ |
---|---|---|
1 | æ°åå±aiboãé£æºã¢ããªãšããŠç»é²ãã | aibo ããããããŒãµã€ã |
2 | æ°åå±aiboã®èªèšŒæ å ±ãã³ãŒãã«åæ ãã | ããŒã«ã«ãã©ã«ããŒïŒ./CloudFunctions ïŒ |
3 | æ°åå±aibo ããããã€ãã | Google Cloud Platform, ããŒã«ã«ãã©ã«ããŒïŒ./CloudFunctions, ./CloudStorage ïŒ |
4 | aibo Cloudã«GCPãšã³ããã€ã³ãã®éç¥å ãèšå®ãã | aibo ããããããŒãµã€ã |
5 | aibo Cloudãžéç¥ããã€ãã³ããèšå®ãã | aibo ããããããŒãµã€ã |
äœæ¥å 容ãaibo ããããããŒãµã€ãã®å³ãšå¯Ÿå¿ãããŠå³ç€ºãããšãäžèšã®ãããªã€ã¡ãŒãžã«ãªããŸãã
aibo ããããããŒãµã€ãã®éçºè èšå®ãžãµã€ã³ã€ã³ããŸãã äœæããé£æºã¢ããªã®é ç®ãã¯ãªãã¯ããŠããæ°ããé£æºã¢ããªãäœæããããã¿ã³ãã¯ãªãã¯ããŸãã
é£æºã¢ããªåããé£æºã¢ããªã®èª¬æãå ¥åããŠãããŸãã ãããŸã§ã§ãæ°åå±aiboãé£æºã¢ããªãšããŠç»é²ããå®éã«éçºãè¡ãæºåãæŽããŸããã
TIP: äžèšã®é£æºã¢ããªã®æ å ±ãèšå®ãã段éã§ã¯ãé£æºã¢ããªäžèŠ§ã«å ¬éãããããšã¯ãããŸãããããã§å ¥åããå 容ã¯å¥éãæ²èŒç³è«ããè¡ã£ãŠå¯©æ»ã«åæ Œãããšå ¬éãããŸãã詳ããã¯ããããããŒãµã€ãã®é£æºã¢ããªã®æ²èŒç³è«ãåç §ããŠãã ããã
-
æ°åå±aiboãé£æºã¢ããªãšããŠç»é²ããéã«çæãããã
ã¯ã©ã€ã¢ã³ãID
ãšã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ãã
ãã³ããŒããæå ã®ã¡ã¢åž³ãªã©ã«èšããŠãããŸããð¡ éçºã®ãã€ã³ã1:
POINT1:
ã¯ã©ã€ã¢ã³ãID
ãšã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ãã
ã¯ä»åŸè€æ°å䜿çšããŸããåãããããããã«ã¡ã¢ããŠãããŸãããïŒ -
ãµã³ãã«ã³ãŒããä¿®æ£ããŸãã
-
CloudFunctions/main.py
ãç·šéããCLIENT_ID
ãšCLIENT_SECRET
ã1.ã§ã³ããŒããå€ã«æžãæããŸããCloudFunctions/main.py 10è¡ç®
# é£æºã¢ããªã®æ å ± CLIENT_ID = 'XXX' CLIENT_SECRET = 'XXX'
ãŸã ãœãŒã¹ã³ãŒããããŠã³ããŒãããŠããªãå Žåã¯ãGitHubãªããžããªãããœãŒã¹ã³ãŒããããŠã³ããŒãããŠã奜ã¿ã®ãã©ã«ããŒãžå±éããŠãããç·šéããŸãããã
-
ããããã¯GCPã䜿ããªãããäœæ¥ãããã§ãŒãºã«ãã€ããŸããæ°ãããããžã§ã¯ããè¿œå ããFirestoreãCloud FunctionsãCloud Storage ãããããæºåããŸãã
-
æ°ãããããžã§ã¯ãã®è¿œå
- GCPã«ãã°ã€ã³ããŸããGoogle Cloud Platform
- Googleã¢ã«ãŠã³ããæã£ãŠããªãæ¹ã¯ãã¢ã«ãŠã³ããäœæããŠããGCPã«ãã°ã€ã³ããŠãã ããã
- Googleã¢ã«ãŠã³ãããã§ã«æã£ãŠããæ¹ã§ããGoogle Cloud Platformãžã®ç»é²ãšã¯ã¬ãžããã«ãŒãã®ç»é²ãå¿ èŠã«ãªããŸãã
- ãaiboSampleããšããååã§æ°ãããããžã§ã¯ããè¿œå ããŸãã
- GCPã«ãã°ã€ã³ããŸããGoogle Cloud Platform
-
Firestore ã®æºå
-
ã³ã³ãœãŒã«ç»é¢ã®äžéšã«ããæ€çŽ¢ããã¯ã¹ã«ãFirestoreããšå ¥åããŠã
Firestore
ã®ãããã¯ããéžæããŸãã -
Firestoreã®ã¢ãŒããéžæããç»é¢ãçŸãããã
ãã€ãã£ãã¢ãŒã
ãéžæããŸãã -
ãããã€ãããã±ãŒã·ã§ã³ãéžæããŸãã
- 奜ããªãã±ãŒã·ã§ã³ãéžæããŠãããŒã¿ããŒã¹ãäœæããŸããããã§éžæãããã±ãŒã·ã§ã³ã«å®éã®ããŒã¿ãé 眮ãããŸãã
NOTE: éžæãããã±ãŒã·ã§ã³ã«ãã£ãŠã¯ãæéãçºçããå¯èœæ§ããããŸããç¡ææ ã§ã®å©çšã«é©ãããã±ãŒã·ã§ã³ã®ç¢ºèªã«ã¯ãGoogleå ¬åŒãµã€ããåèã«ããŠãã ããã
-
ããŒã¿ããŒã¹ãäœæããŠããŸãã
ãšè¡šç€ºãããŠããéã¯æ°åéåŸ ã¡ãŸãããããªãã€ã¬ã¯ãå ã«ç©ºã®ããŒã¿ããŒã¹ãäœæãããã°ããã®ã¹ãããã®æºåã¯å®äºã§ãã
-
-
Cloud Functions ã®æºå
-
ã³ã³ãœãŒã«ç»é¢ã®äžéšã«ããæ€çŽ¢ããã¯ã¹ã«ãCloud Functionsããšå ¥åããŠã
Cloud Functions
ã®ãããã¯ããéžæããŸãã -
é¢æ°ãäœæ
ãæŒããŸãã -
ã¯ãããŠCloud Functionsã䜿çšããå Žåã«ã¯ãå¿ èŠãªAPIãæå¹åããŸãã
-
é¢æ°ãäžèšã®ããã«èšå®ããŸãã
- é¢æ°å: my-linkable-app
- ãªãŒãžã§ã³: Firestoreãšåãå°åãéžæ
- ããªã¬ãŒã¿ã€ã: HTTP
- æªèªèšŒã®åŒã³åºããèš±å¯
HTTPSãå¿ é
ã«ãã§ãã¯
-
äžèšã®ãããªç»é¢ã«é·ç§»ããŸãã
-
Cloud Build APIã«ã€ããŠã®èŠåãåºãå Žåã¯ã
APIãæå¹ã«ãã
ãã¯ãªãã¯ããŠãCloud Build APIãæå¹ã«ããŸãã -
å ã®ç»é¢ã«æ»ããé¢æ°å ã§äœ¿çšããèšèªïŒã©ã³ã¿ã€ã ïŒããPython 3.9ã«èšå®ããŸãã
-
次ã«ãããŒã«ã«ã«ãã
CloudFunctions
ãã©ã«ããŒã®äžã®ãmain.py
ãrequirements.txt
ãaibo_api_ctrl.py
ãã¯ã©ãŠãäžã«ã¢ããããŒãããŸããmain.py
ãrequirements.txt
ã«ã€ããŠã¯ãããŒã«ã«ã®ã³ãŒããããããã³ããŒããŠãã¯ã©ãŠãäžãã¡ã€ã«ã«ããŒã¹ãããŸããaibo_api_ctrl.py
ã¯ãïŒïŒãã©ã¹ïŒ
ãã¿ã³ãæŒããŠæ°ãããã¡ã€ã«ãäœæããŠãããããŒã«ã«ã®ãã¡ã€ã«ã®å 容ãããŒã¹ãããŸãããããã€
ãã¿ã³ãæŒããŸãã
TIP: ãããã€ãå®äºããã«ã¯æ°åéãããå ŽåããããŸãããã°ããåŸ ã¡ãŸããã:tea:
-
é¢æ°ããããã€ã§ãããããããã€å ã®URLãã¡ã¢ããŸãã
- "my-linkable-app"ãã¯ãªãã¯ããŠãé¢æ°ã®ããã·ã¥ããŒãããŒãžãéããããªã¬ãŒã¿ããéžæããŠããªã¬ãŒURLãã³ããŒããŸãã
ð¡ éçºã®ãã€ã³ã2:
POINT2: ä»ã³ããŒããããªã¬ãŒURLããèªèšŒèš±å¯ãšã³ããã€ã³ãã®URLã«ãªããŸãã"ãšã³ããã€ã³ãURL"ãšããŠã¡ã¢ããŠãããŸãããã
-
-
Cloud Storage ã®æºå
-
ã³ã³ãœãŒã«ç»é¢ã®äžéšã«ããæ€çŽ¢ããã¯ã¹ã«ãCloud Storageããšå ¥åããŠã
Cloud Storage
ã®ãããã¯ããéžæããŸãã -
ãã±ãããäœæ
ãã¿ã³ãæŒããäžèšã®æ¡ä»¶ã§æ°ããã¹ãã¬ãŒãžãäœæããŸãããªãŒãžã§ã³ã«ã€ããŠã¯FirestoreãCloud Functionsãšåãããããã¯è¿ãå ŽæãéžæããŠãã ããã- ãã±ããå: my-linkable-app_XXX (*3)
- ã¹ãã¬ãŒãžã¯ã©ã¹: Standard
- ã¢ã¯ã»ã¹å¶åŸ¡: åäž
ãªããã±ããã«å¯Ÿããå ¬éã¢ã¯ã»ã¹çŠæ¢ã¯é©çšããŸããããã§ãã¯ããã¯ã¹ã«ã¯ããã§ãã¯ãä»ããã«é²ã¿ãŸãã
(*3) ãã±ããåã«ã€ã㊠ãã±ããåã¯ããªãŒãžã§ã³ããšã«äžæã®ååãå¿ èŠã§ãã(ä»ã®ãŠãŒã¶ãæ¢ã«äœ¿çšããŠããååã¯äœ¿çšã§ããŸããã) XXXã«ã¯ã123ãªã©å¥œããªæ°åãå ¥ããŠãããŸãããã
-
ã€ã³ã¿ãŒãããäžãã誰ã§ãã¢ã¯ã»ã¹ãã§ããããã«ãæš©éã®èšå®ãè¡ããŸãã
- æš©éã®ã¿ããã¯ãªãã¯ãã
æš©éãè¿œå
ãã¿ã³ãæŒããŸãã - æ°ããããªã³ã·ãã«ã«ãallUsersãšå
¥åããŠãããŒã«ã«
Storage ãªããžã§ã¯ãé²èŠ§è
ãšå ¥åããŸãã
- æš©éã®ã¿ããã¯ãªãã¯ãã
-
ããŒã«ã«ã®
CloudStorage/callback.html
ãç·šéããŸãã-
ã³ãŒãå ã®èªèšŒèªå¯ãšã³ããã€ã³ãããéçºã®ãã€ã³ã2ã§ã¡ã¢ãã
ãšã³ããã€ã³ãURL
ã«æžãæããŸããCloudStorage/callback.html 111è¡ç®
const auth_endpoint = `https://xxx`
-
-
ãªããžã§ã¯ã
ã¿ããã¯ãªãã¯ããç·šéããcallback.html
ãCloud Storage ã«ã¢ããããŒãããŸãã- ã¢ããããŒããããã
callback.html
ãéžæããå ¬éURLãã³ãŒã«ããã¯URL
ãšããŠã¡ã¢ããŠãããŸãããã
- ã¢ããããŒããããã
-
CloudStorage/index.html
ãç·šéããŸãã-
ã³ãŒãå ã®äžèš2ã€ã®å€æ°ãã¡ã¢åž³ã®å€ã«æžãæããŸãã
client_id
ããã¯ã©ã€ã¢ã³ãID
ã«æžãæããŸããredirect_uri
ããã³ãŒã«ããã¯URL
ã«æžãæããŸãã
CloudStorage/index.html 170è¡ç®
const client_id = 'XXX'; const redirect_uri = 'https://xxx'; const region = 'JP';
-
-
CloudStorage/index.html
ãCloud Storage ã«ã¢ããããŒãããŸãã- ã¢ããããŒããããã
index.html
ãéžæããå ¬éURLãããã³ãããŒãžURL
ãšããŠã¡ã¢ããŠãããŸãããã
- ã¢ããããŒããããã
-
CloudStorage/image
以äžã®pngãã¡ã€ã«çŸ€ãCloud Storage ã«ã¢ããããŒãããŸããCloudStorage/image
ã®ãã©ã«ããŒããšãã©ãã°ïŒããããããŠã¢ããããŒãã§ããŸãã
ð¡ éçºã®ãã€ã³ã3:
POINT3: "Cloud Storage ã®æºå"ã®é ç®ã§ã¯ãæ°ããïŒã€ã®URLãã¡ã¢ããŸããã(
ã³ãŒã«ããã¯URL
,ããã³ãããŒãžURL
)ð© ãæ°åå±aibo ã®ãããã€ãã®ãŸãšã:
well done!: ãã€ããããŸã§ãïŒ ãããŸã§ã§ãæ°åå±aibo ããããã€ããããå®äºããŸããã ããã§æ°åå±aiboã®ããã³ãã»ããã¯ãšã³ãäž¡æ¹ãã€ã³ã¿ãŒãããããå®éã«ã¢ã¯ã»ã¹ã§ãã圢ã«ãªã£ãã¯ãã§ãããã以éã¯ããã®äž¡æ¹ã®ãªãœãŒã¹ãšãœããŒãæäŸããaibo Cloudãã€ãªãèšå®ã«ç§»ããŸããã€ãªãèšå®ãããããšã§ãä»åãããã€ãããªãœãŒã¹ãšaibo Cloudãé£æºããŠåäœããããã«ãªããŸãã
-
aibo ããããããŒãµã€ãã§ãé£æºã¢ããªã«å¿ èŠãªèšå®ãè¡ããŸãã
-
ãšã³ããã€ã³ãã®èšå®ãè¡ããŸãã
-
ä»åäœæããã[ã¢ããªå]ã®é£æºã¢ããªèšå®ã®ããŒãžã«é²ã¿ãŸãã
-
ãšã³ããã€ã³ãã«ã
ãšã³ããã€ã³ãURL
ãšããŠã¡ã¢ããURLïŒCloud Functionsãžã®ãããã€å ïŒãèšå®ããŸããhttps://xxx
-
ãšã³ããã€ã³ããèšå®ãããšããšã³ããã€ã³ãã®æ€èšŒãè¡ãããæ€èšŒã«æåãããšç»é²ãå®äºããŸãã
-
-
é£æºã¢ããªã®ãµãŒããŒèšå®ãããŸãã
æåŸã«ãäžèšã®ç»é¢ã®ããã«
ãµãŒããŒèšå®
ã®ã¿ããéããç·šé
ãã¿ã³ãæŒããŠäžèš3ã€ã®URLãèšå ¥ããŸãã- é£æºã¢ããªã®ãšã³ããªãŒURL ã«ã
ããã³ãããŒãžURL
ãèšå® - èªèšŒåŸã®ãªãã€ã¬ã¯ãURL ã«ã
ã³ãŒã«ããã¯URL
ãèšå® - é£æºäžã®ã¢ããªã®URL ã«ã
ããã³ãããŒãžURL
ãèšå®
- é£æºã¢ããªã®ãšã³ããªãŒURL ã«ã
- Cloud Functionsãžãããã€ããé¢æ°ã«éç¥ããã€ãã³ããè¿œå ããŸãã
- æ¬ãµã³ãã«ã¢ããªã§ã¯ãé³å£°ã³ãã³ã
goodmorning
ãéžæããŠè¿œå ããŸãã- ã€ãã³ãéç¥ã®ã¿ããããéç¥ããã€ãã³ãã®
è¿œå
ãã¿ã³ãã¯ãªãã¯ããŸãã - é³å£°ã³ãã³ãé
ç®ãã
goodmorning
ãéžã³ãè¿œå ããŸãã
- ã€ãã³ãéç¥ã®ã¿ããããéç¥ããã€ãã³ãã®
ãããŸã§æ¥ãã°ãå®éã«æ°åå±aiboãåäœããæºåãæŽããŸãããããããã¯ãæåŸ éãã«åäœããã確èªããŠãããŸãããã
- ã¡ã¢ããŠããã
ããã³ãããŒãžURL
ãWebãã©ãŠã¶ã§éããŸãã - ãæ°åå±aiboãã®webããŒãžã衚瀺ããããã
aiboãé£æºãã
ãã¿ã³ãæŒããŸãã - 以äžã®ãããªæµãã§ããŒãžãé·ç§»ããé£æºå®äºããŒãžã衚瀺ãããã°ãé£æºå®äºã§ãã
-
ïŒä»»æïŒaiboãæç€ºåŸ ã¡ç¶æ ã«ããŸãã
ãæ°åå±aiboãã¢ããªã«ããåãã確èªãããããããããaibo ããžã¥ã¢ã«ããã°ã©ãã³ã°ã䜿ã£ãŠãaiboããæç€ºåŸ ã¡äžãã«ããŸãã
- aibo ããžã¥ã¢ã«ããã°ã©ãã³ã°ã«ãµã€ã³ã€ã³ããŸãã
- ãããã¯ã䞊ãã§ããå·ŠåŽã®ã¿ãããã
æç€ºåŸ ã¡äžã«ãªã
ãããã¯ãéžæããŸããæç€ºåŸ ã¡äžã«ãªã
ãããã¯ã¯ãåã
ãšããåºåã«é 眮ãããŠããŸããäžã®æ¹ãŸã§ã¹ã¯ããŒã«ããŠæ¢ããŠã¿ãŸãããã
- aiboãæç€ºåŸ ã¡ç¶æ ã«å ¥ããšããªãŒããŒããã®æ瀺ãåŸ æ©ããç¶æ ã«å ¥ããŸãã
-
ããã¯ããããšèšããšãaiboãäžèšã®ãã¡ããããã®ãµããŸããããŠãããŸãã
ãšã£ãŠãåã¶
é¡ãæŽãä»èããã
ãã«ããšéãã