AWS Lambda(python)에서 REST 호출하기 ~ 시도에 docomo 자연 대화 API에!
소개
오랫동안 익숙한 docomo 잡담 대화 API가 2018년 10월 말에 서비스 종료가 되었습니다.
서비스 개시 당시는, LINE의 뒤에 넣어 LINE BOT 만들어 놀고 있었습니다.
후속 서비스로 docomo 자연 대화 API가있는 것 같습니다.
htps : //에서 v. smt. 아무도. 네. jp/? p = cs. 아피. Page & Api _ Name = Nazura l_ Aa Gue & p_ Name = Api _4
모처럼이므로 AWS Lambda (python3.6)에서 API를 호출하고 싶습니다.
절차
첫회는 (1) 및 (2)가 필요하고, 조금 번거롭습니다.
(1) docomo developer support에 등록
(2) API 등록
API를 통해 사용자 등록을 하고 애플리케이션 ID를 얻어야 합니다.
이 절차는 약간의 코딩이 필요합니다.
lambda에 다음 코드를 넣고 핸들러 정보를 lambda_function.registration으로 설정하고 이동하면 응용 프로그램 ID를 얻을 수 있습니다.
그런 다음 애플리케이션 ID와 애플리케이션 키를 Lambda 환경 변수로 설정합시다.
(3) 이용
대화할 때는 핸들러를 lambda_function.main으로 사용해 보세요.
환경 변수의 메시지에 말하고 싶은 내용(「안녕하세요」등)을 써 테스트 버튼을 누르면・・・
메시지가 반환됩니다.
여러 가지 말을 걸어 봅시다!
코드
lambda_function.py
import requests
import json
import os
docom_app_id = os.environ['APP_ID']
docomo_api_key = os.environ['API_KEY']
docomo_endpoint_registration = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/registration?APIKEY='+docomo_api_key
docomo_endpoint_dialog = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue?APIKEY='+docomo_api_key
headers = {
'Content-type': 'application/json;charset=UTF-8'
}
def registration(event, context):
payload = {
"botId": "Chatting",
"appKind": "Smart Phone"
}
response = requests.post(
docomo_endpoint_registration,
data=json.dumps(payload),
headers=headers
)
data = response.json()
print(json.dumps(data))
return {'statusCode': 200}
def main(event, context):
payload = {
"language": "ja-JP",
"botId": "Chatting",
"appId": docom_app_id,
"voiceText": os.environ['MESSAGE'],
"appRecvTime": "2017-10-28 00:25:00",
"appSendTime": "2017-10-28 00:25:00"
}
response = requests.post(
docomo_endpoint_dialog,
data=json.dumps(payload),
headers=headers
)
data = response.json()
return data['systemText']['expression']
참고
Reference
이 문제에 관하여(AWS Lambda(python)에서 REST 호출하기 ~ 시도에 docomo 자연 대화 API에!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ea-yasuda/items/239e506d1905a52d97a2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)