【问题标题】:Twilio + Dialogflow + Whatsapp Error code 11200Twilio + Dialogflow + Whatsapp 错误代码 11200
【发布时间】:2020-11-18 16:25:30
【问题描述】:

根据this 文档,我已经完成了所有工作并获得了如下所述的最终 URL:

https://dialogflow-twilio-4syckuoz4a-uc.a.run.app

在消息传递 webhook 中将此 URL 设置为 HTTP POST 方法。当我在浏览器中检查此 URL 且未收到任何输出时,它显示为“Cannot GET /”。

在 Twilio 设置中禁用 SSL 验证。使用 http 和 https 进行检查,但两者都不起作用。在 twilio 调试器中收到错误 11200。我错过了什么。请帮帮我。

这是根据文档的 server.js 脚本

const express = require('express');   
const request = require('request');   
const app = express();   

const dialogflowSessionClient =
    require('../botlib/dialogflow_session_client.js');
const bodyParser = require('body-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));


const projectId = 'xxxxxxxxxx';
const phoneNumber = "xxxxxxxxxx";
const accountSid = 'xxxxxxxxxx';
const authToken = 'xxxxxxxxxxxxxxx';

const client = require('twilio')(accountSid, authToken);
const MessagingResponse = require('twilio').twiml.MessagingResponse;
const sessionClient = new dialogflowSessionClient(projectId);

const listener = app.listen(process.env.PORT, function() {
  console.log('Your Twilio integration server is listening on port '
      + listener.address().port);
});

app.post('/', async function(req, res) {
  const body = req.body;
  const text = body.Body;
  const id = body.From;
  const dialogflowResponse = (await sessionClient.detectIntent(
      text, id, body)).fulfillmentText;
  const twiml = new  MessagingResponse();
  const message = twiml.message(dialogflowResponse);
  res.send(twiml.toString());
});

process.on('SIGTERM', () => {
  listener.close(() => {
    console.log('Closing http server.');
    process.exit(0);
  });
});

【问题讨论】:

  • 嗨@Shenbagavalli,因为它是一种 POST 方法,我认为您不能对该 URL 发出 GET 请求。您是否尝试过使用Twilio Sandbox for WhatsApp?。为了证实您没有跳过步骤,this 视频可能会有所帮助。
  • @MarianaAngeles 是的,我已经为 whatsapp 设置了 Twilio 沙箱。根据视频,我已经完成了所有操作,但收到了同样的错误。
  • 基于Twilio Docs 似乎这可能是 Dialogflow 和 Twilio 连接之间的问题,或者代理返回时间过长。基于此,您能否收集以下信息: 1. 完整错误消息的屏幕截图 2. 您是否修改了 Dockerfile 将集成变量设置为“twilio”? 3. 您是否将您的服务帐户 JSON 密钥文件复制到所需的平台子目录?
  • 4.执行deployment to live 时,您是否将“YOUR_KEY_FILE”替换为您的服务帐户 JSON 密钥文件的名称(而不是路径)?请不要忘记添加 JSON 扩展名(例如:test_key.json) 5. 您是否测试过来自Dialogflow simulator 的代理,以便丢弃代理内部的一些问题。
  • @MarianaAngeles 感谢您的回复。我已编辑问题,请查看

标签: node.js twilio dialogflow-es dialogflow-es-fulfillment twilio-programmable-chat


【解决方案1】:

现在解决了。只是我删除了所有内容并按照文档再次关注。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2020-04-26
    • 2020-03-14
    • 1970-01-01
    相关资源
    最近更新 更多