因此,我正在尝试使用需要外部API的Dialogflow进行Google操作。我一直使用jQuery .getJSON()
进行API调用,所以我不知道该怎么做。在网上搜索此内容后,我找到了一种使用香草javascript的方法(我也在我的网站上测试了该方法,效果很好)。的代码如下:
function loadXMLDoc() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
console.log(xmlhttp.responseText);
}
};
xmlhttp.open("GET", "https://translate.yandex.net/api/v1.5/tr.json/translate?lang=en-es&key=trnsl.1.1.20190105T052356Z.7f8f950adbfaa46e.9bb53211cb35a84da9ce6ef4b30649c6119514a4&text=eat", true);
xmlhttp.send();
}
该代码在我的网站上运行良好,但是一旦将其添加到Dialogflow中,它就会给我错误
未定义XMLHttpRequest
很明显,发生这种情况是因为我没有定义它(使用var
),除了它不需要我做任何事情就可以工作。因此,我尝试添加此行
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
代码,它停止给我错误(因为我定义了XMLHttpRequest)。但是后来,我的代码无法正常工作。
TL; DR:如何使用Dialogflow实现来进行外部API调用?
答案 0 :(得分:1)
您可以使用--network=host
。但是请确保您升级到Blaze Pay(或任何其他计划)以进行外部API调用,否则会收到诸如
https
进行外部api调用的代码,
Error:
Billing account not configured. External network is not accessible and quotas are severely limited. Configure billing account to remove these restrictions.
答案 1 :(得分:0)
这篇文章是一颗钻石!确实有助于弄清Dialogflow完整程序中正在发生的事情和需要什么。
一个小建议是正常捕获与Web服务的连接中的错误:
{{ui.button.edit.text | translate}}