Dialogflow의 Unity SDK는 iOS에서 작동하지 않습니다.
9140 단어 iOSdialogflowUnity
소개
제목대로입니다. Assetstore 리뷰에도 적혀 있지만 iOS에서는 작동하지 않습니다. Editor라면 괜찮습니다만. 스레드 관계의 오류처럼 보이지만 어떻게 고칠 수 있는지 잘 모르겠습니다.
어떻게 할까
REST API 을 스스로 두드리는 것이 좋을 것 같습니다. 자신은 Best HTTP(Pro edition) 을 사용하고 있습니다. 다른 자산도 시도했지만 가장 스트레스없이 사용할 수있는 것은 이것이었습니다. iOS에서도 안정적으로 작동합니다.
샘플 코드는 이런 느낌입니다.
TestBestHTTPusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BestHTTP;
public class TestBestHTTP : MonoBehaviour {
public void OnClick(){
HTTPRequest request = new HTTPRequest(new System.Uri("https://api.dialogflow.com/v1/query?v=20150910&lang=ja&query=声調の勉強&sessionId=12345&timezone=Asia/Tokyo"), OnRequestFinished);
request.AddHeader("Authorization", "Bearer c***f");
request.Send();
}
void OnRequestFinished(HTTPRequest request, HTTPResponse response)
{
Debug.Log("Request Finished! Text received: " + response.DataAsText);
}
}
Header에 "Authorization"으로 "Bearer Client access token"이 필요합니다. Client access token은 Dialogflow의 에이전트 설정 화면에서 가져옵니다.
그런 다음 URL에 v = ...로 버전을 넣어야합니다. 이것에 대해서는 여기를 참조. 언어(lang)와 sessionID도 지정합니다.
그러면 JSON 형식으로 응답이 반환됩니다.
{
"id": "4*****8",
"timestamp": "2017-11-15T09:42:31.482Z",
"lang": "ja",
"result": {
"source": "agent",
"resolvedQuery": "声調の勉強",
"action": "",
"actionIncomplete": false,
"parameters": {
"Tones": "声調"
},
"contexts": [],
"metadata": {
"intentId": "6*******e",
"webhookUsed": "false",
"webhookForSlotFillingUsed": "false",
"intentName": "L*****h"
},
"fulfillment": {
"speech": "<speak> <audio src=\"h******** </speak>",
"messages": [
{
"type": 0,
"speech": "<speak>\n<audio src=\"h*****</speak>"
}
]
},
"score": 1.0
},
"status": {
"code": 200,
"errorType": "success",
"webhookTimedOut": false
},
"sessionId": "12345"
}
하나하나의 의미에 대해서는 여기을 참조.
끝에
공식 SDK로 iOS로 해 주었으면 합니다만, 개발자 님의 액티비티가 상당히 낮아서 희망입니다. 스스로 어떻게든 하는 것이 좋을 것 같습니다.
Reference
이 문제에 관하여(Dialogflow의 Unity SDK는 iOS에서 작동하지 않습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yanosen_jp/items/9a7bf801e600cb5bfa57
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
REST API 을 스스로 두드리는 것이 좋을 것 같습니다. 자신은 Best HTTP(Pro edition) 을 사용하고 있습니다. 다른 자산도 시도했지만 가장 스트레스없이 사용할 수있는 것은 이것이었습니다. iOS에서도 안정적으로 작동합니다.
샘플 코드는 이런 느낌입니다.
TestBestHTTP
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BestHTTP;
public class TestBestHTTP : MonoBehaviour {
public void OnClick(){
HTTPRequest request = new HTTPRequest(new System.Uri("https://api.dialogflow.com/v1/query?v=20150910&lang=ja&query=声調の勉強&sessionId=12345&timezone=Asia/Tokyo"), OnRequestFinished);
request.AddHeader("Authorization", "Bearer c***f");
request.Send();
}
void OnRequestFinished(HTTPRequest request, HTTPResponse response)
{
Debug.Log("Request Finished! Text received: " + response.DataAsText);
}
}
Header에 "Authorization"으로 "Bearer Client access token"이 필요합니다. Client access token은 Dialogflow의 에이전트 설정 화면에서 가져옵니다.
그런 다음 URL에 v = ...로 버전을 넣어야합니다. 이것에 대해서는 여기를 참조. 언어(lang)와 sessionID도 지정합니다.
그러면 JSON 형식으로 응답이 반환됩니다.
{
"id": "4*****8",
"timestamp": "2017-11-15T09:42:31.482Z",
"lang": "ja",
"result": {
"source": "agent",
"resolvedQuery": "声調の勉強",
"action": "",
"actionIncomplete": false,
"parameters": {
"Tones": "声調"
},
"contexts": [],
"metadata": {
"intentId": "6*******e",
"webhookUsed": "false",
"webhookForSlotFillingUsed": "false",
"intentName": "L*****h"
},
"fulfillment": {
"speech": "<speak> <audio src=\"h******** </speak>",
"messages": [
{
"type": 0,
"speech": "<speak>\n<audio src=\"h*****</speak>"
}
]
},
"score": 1.0
},
"status": {
"code": 200,
"errorType": "success",
"webhookTimedOut": false
},
"sessionId": "12345"
}
하나하나의 의미에 대해서는 여기을 참조.
끝에
공식 SDK로 iOS로 해 주었으면 합니다만, 개발자 님의 액티비티가 상당히 낮아서 희망입니다. 스스로 어떻게든 하는 것이 좋을 것 같습니다.
Reference
이 문제에 관하여(Dialogflow의 Unity SDK는 iOS에서 작동하지 않습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yanosen_jp/items/9a7bf801e600cb5bfa57텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)