Сервер ngrok не соединяется с dialogfow - PullRequest
0 голосов
/ 23 сентября 2018

Я абсолютный новичок в чате бота.Я учусь сам и продолжаю разрабатывать очень простой чат-бот, используя диалог.У меня есть код Python для ответа на запрос моего бота потока диалога.Я включил "webhook" при выполнении, а также включил в "Intent". Мой URL-адрес ngrok равен http://ae3df23b.ngrok.io/. Я написал в своем коде Python функцию, которая отвечает на ngrok, который соединяет поток диалога.Теперь проблема в том, что он показывает ошибку «404 not found» и запрошенный URL не найден на сервере.Если вы ввели URL-адрес вручную, проверьте правильность написания и повторите попытку.Пожалуйста, помогите мне, ребята.Заранее спасибо.

Мой код

    #import necessary packages and libraries
import urllib
import os
import json
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=makeWebhookResult(req)
    res=json.dumps(res, indent=4)
    print(res)
    r=make_response(res)
    r.headers['Content-Type']='application/json'
    return r

def makeWebhookResult(req):
    if req.get("result").get("action")!="interest":
        return {}
    result=req.get("result")
    parameters=result.get("parameters")
    name=parameters.get("Banknames")
    bank={'SBI':'10%', 'HDFC Bank':'9%', 'Bank of Baroda':'11', 'Federal Bank':'8.9%', 'ICICI Bank': '11.5%'}
    speech='The interest rate of '+ name + "is" + str(bank[name])
    print("Response:")
    print(speech)
    return {
    "speech":speech,
    "displayText":speech,
    "source":"BankInterestRates"
    }
if __name__ == "__main__":
    port=int(os.getenv('PORT', 80))
    print("Starting app on port %d", (port))

    app.run(debug=True, port=port, host='0.0.0.0')

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Попробуйте использовать этот формат вместо https://ae3df23b.ngrok.io/[replace-with-your-project-id]/us-central1/dialogflowFirebaseFulfillment

и убедитесь, что вы запускаете ngrok с портом 5000 и размещаете свои функции с помощью команды "firebase serve"

0 голосов
/ 23 сентября 2018

Я думаю, вы должны использовать https://ae3df23b.ngrok.io/webhook.Вы пропускаете путь.Также используйте https, сгенерируйте новый URL-адрес ngrok и обновите выполнение.

...