Actions on Google üzerine yazdığım ilk 2 yazı genel olarak bilgi verme amaçlıydı. 3. yazıda ise beraber basitçe bir chatbot yarattık. Ancak chatbotumuz kullanıcıya cevap olarak biz ne istersek onu verdi. Arkada herhangi bir çalışma yapılmadı, herhangi bir servise gidilip data çekilmedi. Bu yazıda ise botumuzu biraz daha akıllandıracağız.
Webhook kullanabilmek için soldaki menüde yer alan fullfilment’e tıklayıp onu aktif etmemiz gerekmektedir. Gideceğimiz webservis url’ini de burada veriyor olacağız.
Servise gelecek olan isteğin formatı aşağıdaki gibi olacaktır.
POST https://my-service.com/action
Headers:
//user defined headers
Content-type: application/json
POST body:
{
"lang": "en",
"status": {
"errorType": "success",
"code": 200
},
"timestamp": "2017-02-09T16:06:01.908Z",
"sessionId": "1486656220806",
"result": {
"parameters": {
"city": "Rome",
"name": "Ana"
},
"contexts": [],
"resolvedQuery": "my name is Ana and I live in Rome",
"source": "agent",
"score": 1.0,
"speech": "",
"fulfillment": {
"messages": [
{
"speech": "Hi Ana! Nice to meet you!",
"type": 0
}
],
"speech": "Hi Ana! Nice to meet you!"
},
"actionIncomplete": false,
"action": "greetings",
"metadata": {
"intentId": "9f41ef7c-82fa-42a7-9a30-49a93e2c14d0",
"webhookForSlotFillingUsed": "false",
"intentName": "greetings",
"webhookUsed": "true"
}
},
"id": "ab30d214-f4bb-4cdd-ae36-31caac7a6693",
"originalRequest": {
"source": "google",
"data": {
"inputs": [
{
"raw_inputs": [
{
"query": "my name is Ana and I live in Rome",
"input_type": 2
}
],
"intent": "assistant.intent.action.TEXT",
"arguments": [
{
"text_value": "my name is Ana and I live in Rome",
"raw_text": "my name is Ana and I live in Rome",
"name": "text"
}
]
}
],
"user": {
"user_id": "PuQndWs1OMjUYwVJMYqwJv0/KT8satJHAUQGiGPDQ7A="
},
"conversation": {
"conversation_id": "1486656220806",
"type": 2,
"conversation_token": "[]"
}
}
}
}
Servisimizden dönmesi gerek yanıt ise aşağıdaki formatda olmalıdır. Bu formatta request alıp, aşağıdaki formatta response verdiğimiz sürece istediğimiz platformda geliştirme yapabiliriz. Eğer node.js’le ilerlemeyi seçerseniz, actions on google’ın github‘ında template kod bulunmakta.
Headers:
Content-type: application/json
Body:
{
"speech": "Barack Hussein Obama II is the 44th and current President of the United States.",
"displayText": "Barack Hussein Obama II is the 44th and current President of the United States, and the first African American to hold the office. Born in Honolulu, Hawaii, Obama is a graduate of Columbia University and Harvard Law School, where ",
"data": {...},
"contextOut": [...],
"source": "DuckDuckGo"
}
Data çalışacağımız platformu ifade etmektedir.
"data": {"slack": {<slack_message>}}
"data": {"facebook": {<facebook_message>}}
"data": {"kik": {<kik_message>}}
"data": {"telegram": {<telegram_message>}}
Referanslar:
- https://www.youtube.com/watch?v=HNfE0uaKcfY
- https://developers.google.com/actions/develop/apiai/tutorials/getting-started
- https://docs.api.ai/docs/concept-actions#section-automatic-parameter-definition
- https://developers.google.com/actions/tools/web-simulator
- https://docs.api.ai/docs/dialogs
Leave a Reply