spring0520
212
2018-01-04 11:16:38
3
3294

Python 카카오톡 챗봇 URL 설정


안녕하세요. 카카오톡 챗봇 작성 중 궁금한 점이 생겨 질문 드립니다.


플러스 친구 관리자 센터에 들어가 API형을 선택한 후에 앱 URL을 적게 되어있는데, 


현재 http://18.217.147.35/keyboard/ 로 적어놨는데, 이럴 경우 메세지를 제대로 응답받지 못해서 챗봇에 말을 할 경우, 

'해당 프로필의 자동응답 시스템이 응답을 하지 않습니다. 문제가 보고되어 처리 예정입니다. 다음에 다시 시도해주세요.'

라고 응답이 옵니다.


예상되는 것은 http://18.217.147.35/message 를 불러오지 못해서 그런 것 같습니다... 그렇다고 URL에 

http://18.217.147.35 를 넣기에는 'keyboard Fail 415 wrong keyboard initialization' 에러가 뜹니다.. 어떻게 해결 할 수 있을까요?


Django, Apache2, AWS, Python 환경으로 개발하고 있습니다. 아래는 작성하고있는 소스입니다.

1. urls.py

from django.conf.urls import url

urlpatterns = [
    url(r'^keyboard/',inform.views.keyboard),
    url(r'^message',inform.views.message),
]


2. views.py

from django.http import JsonResponse
import json

def keyboard(request):
    return JsonResponse({
        'type' : 'buttons',
        'buttons' : ['Tron', 'Bitcoin', 'ADA']
    })

def message(request):
    #message = ((request.body).decode('utf-8'))
    #return_json_str = json.loads(message)
    #return_str = return_json_str['content']

    return JsonResponse({
        'message' : {
            'text' : 'result is abc!'
        },
        'keyboard' : {
            'type' : 'buttons',
            'buttons' : ['Tron', 'Bitcoin', 'ADA']
        }
    })



0
  • 답변 3

  • 7i
    1k
    2018-01-04 11:31:03
    로그확인을 해볼수밖에 없을거 같습니다.
    1. 아파치 액세스, 에러 로그 확인
    2. Django 에러로그 확인

    방금 메세지쪽 api는 respose가 잘나온거 보면 view, urls의 소스는 문제가 없는거 같습니다.


  • bluewas88
    274
    2018-01-04 12:30:56 작성 2018-01-04 12:32:44 수정됨

    카카오톡 관리자의 url 에 keyborad 넣지마시고 http://18.217.147.35 


    이렇게만 등록하세요.


    해당서버에서 카카오톡 proxy 서버가 접근 할 수 있도록 방화벽 해제 하셔야 합니다.


    110.76.143.234
    110.76.143.235
    110.76.143.236
  • spring0520
    212
    2018-01-04 13:28:44

    7i 

    답변감사합니다!! 아파치에 에러가 안찍혀서 고민하고있었네요 ㅜㅜ 소스는 그대로 따라쳐서 문제가 없었습니다 ㅎㅎ!


    bluewas88

    답변감사합니다!! 방화벽 해제하니까 바로 되네요..ㅎㅎ 근데 궁금한 것이 있는데,

    ALLOWED_HOSTS = '*' 

    이라고 할 경우는 왜 안되는 것인가요? *이 모든 것을 의미하는게 아닌가요..?




  • 로그인을 하시면 답변을 등록할 수 있습니다.