Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basics 따라하고 있습니다. #7

Closed
ydy8989 opened this issue Aug 19, 2018 · 1 comment
Closed

Basics 따라하고 있습니다. #7

ydy8989 opened this issue Aug 19, 2018 · 1 comment

Comments

@ydy8989
Copy link

ydy8989 commented Aug 19, 2018

안녕하세요. 분석으로만 파이썬 다루다가 clova앱을 만들일이 생겨 여기로 흘러들어온 초보입니다..
개발 초보라 웹, 서버 관련 지식이 전무해서 뭐가 뭔지...모르겠지만.. 그래도 질문하나 드리고자 합니다.

basics 코드 시도중인데, x.x.x.x:5000/user_defined에 POST로 request할때 디폴트 파라미터로 아무것도 입력 안해줘도 정상작동 해야하나요?
혹시 입력해야한다면 어떤 json 코드를 입력해야하나요? 예시가 있다면 부탁드릴게요.

postman으로 테스트하는데 아무것도 입력 안해주고 요청하면
json.decoder.JSONDecodeError
가 발생하고
대충 아무 json형식으로 딕트 하나 입력해서 요청하면
builtins.AttributeError
AttributeError: 'NoneType' object has no attribute 'sessionAttributes'
라는 에러가 발생하네요...

(참고로 aws에서 우분투 서버하나 파서 하고있는중이고, 5000번 포트는 열었습니다.
코드 마지막 app.run()에 host = '0.0.0.0', port = 5000 추가했습니다. )

@hwonyo
Copy link
Owner

hwonyo commented Aug 20, 2018

일단 attributeError가 발생한다는 것은 어플리케이션이 5000 포트로 잘 열려있다는 뜻이네요

flask-clova 모듈은 지정된 형식의 json 값이 올 것을 기대합니다.
따라서 형식에 맞지 않은 json 값이 들어올 경우 500 에러가 발생하죠.
아래 post 보낼 형식을 첨부하겠습니다.
클로바 앱을 처음 호출할때 넘어오는 json 값입니다.
Basics를 따라하셨다면 "시작했습니다"라는 값이 포함된 json 데이터를 결과로 받으실거에요.

{
  "version": "0.1.0",
  "session": {
    "new": True,
    "sessionAttributes": {},
    "sessionId": "a29cfead-c5ba-474d-8745-6c1a6625f0c5",
    "user": {
      "userId": "V0qe",
      "accessToken": "XHapQasdfsdfFsdfasdflQQ7"
    }
  },
  "context": {
    "System": {
      "application": {
        "applicationId": "com.yourdomain.extension.fakebot"
      },
      "user": {
        "userId": "V0qe",
        "accessToken": "XHapQasdfsdfFsdfasdflQQ7"
      },
      "device": {
        "deviceId": "096e6b27-1717-33e9-b0a7-510a48658a9b",
        "display": {
          "size": "l100",
          "orientation": "landscape",
          "dpi": 96,
          "contentLayer": {
            "width": 640,
            "height": 360
          }
        }
      }
    }
  },
  "request": {
    "type": "LaunchRequest"
  }
}

json 데이터 형식에 대한 설명은 CEK API 레버런스를 참고하면 더 자세히 알 수 있습니다.
혹은 flask-clova 모듈의 tests/test_sample.py 에 있는 테스트 코드를 참고하셔도 도움이 될거에요 :)

@hwonyo hwonyo closed this as completed Nov 17, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants