2017-12-21 39 views
0

dialogflow를 사용하여 Google 보조 작업을 개발하려고했습니다. 웹 훅을 개발하는 동안 몇 가지 문제가 발생했습니다. 파이썬을 사용하고 있습니다. 다음은 코드입니다.대화 흐름 용 웹 훅 만들기 관련 문제

import json 
import os 
import urllib 
from flask import Flask 
from flask import request 
from flask import make_response 
app=Flask(__name__) 
@app.route('/webhook',methods=['POST']) 
def webhook(): 
    req = request.get_json(silent=True,force=True) 
    print("Request:") 
    print(json.dumps(req,indent=4)) 
    res={ 
     "speech": "Complete", 
     "displayText": "Complete", 
     "source": "Myself" 
    } 
    res=json.dumps(res,indent=4) 
    r=make_response(res) 
    r.headers['Content-Type']='application/json' 
    return r 

if __name__ == '__main__': 
    port=int(os.getenv('PORT',8080)) 
    app.run(port=port,host='localhost',ssl_context='adhoc') 

문제는 스크립트에서 반환 한 JSON 객체가 항상 비어 있다는 것입니다. ngrok 사용 , 나는 개체의 이행 키 같은 것을 가지고 :

"fulfillment": { 
     "speech": "", 
     "messages": [] 
    } 

을하고 그 이유를 알아낼 수 없습니다입니다. 어떤 도움을 주시면 감사하겠습니다.

+0

해결 방법을 사용하여 게시물의 제목을 변경하면 안됩니다. 해결 방법은 문제 해결에 도움이되는 경우 올바른 답으로 표시해야합니다. 자신의 답변이있는 경우 올바르게 표시하고 다음과 같이 표시하십시오. 옳은. – eyllanesc

답변

0
from flask import Flask, request, jsonify 

app = Flask(__name__) 

base_response = { 
       'speech':"sample response", 

       'source' : 'Manual'} 


@app.route('/',methods=['GET','POST']) 
def index(): 
    if request.method == 'GET': 
     text = """WELCOME to RBG<br> 
     /testing -> red testing<br>""" 
     return text 
    else: 
     req_body = request.get_json() 
     print(req_body) 
     response = base_response.copy() 
     return jsonify(response) 

if __name__ == '__main__': 
    app.run(host='0.0.0.0',port=5000,debug=True) 

이것은 나를 위해 일했습니다. 희망이 도움이됩니다. 나는 라즈베리 파이에서 ngrok도 사용했습니다.

0

Changline이 라인 :

port=int(os.getenv('PORT',8080) 
app.run(port=port,host='localhost',ssl_context) 

app.run(port=8080,host='localhost') 

으로 나를 위해 문제를 해결.