1

我正在使用 Gupshup.io 开发一个聊天机器人,并希望对外部 API 进行 HTTP 调用。

我正在使用这段代码:

if(event.message=='hi'){
    var contextParam = {
        "cobrand": {
            "cobrandLogin": "sbCobxxxx",
            "cobrandPassword": "xxxxxxx-9f-4307-9d9a-451f3xxxx075",
            "locale": "en_US"
        }
    };
    var url = "https://developer.api.yodlee.com:443/ysl/restserver/v1/cobrand/login";
    var param = contextParam;
    var header = {"Content-Type": "application/x-www-form-urlencoded"};

    context.simplehttp.makePost(url,param,header);
    return;
}

这给了我这个错误:

TypeError:第一个参数必须是字符串或缓冲区

如何在其机器人构建器工具上使用Gupshup 的在线 IDE 对采用 JSON 格式参数的 API 进行 HTTP POST 调用?

4

1 回答 1

4

我来自 Gupshup 团队。

是的,可以使用 Gupshup Bot Builder 进行 POST 调用。这是执行此操作的代码:

 if(event.message=='hi'){
    var contextParam = {
         "cobrand": {
         "cobrandLogin": "sbCobxxxx",
         "cobrandPassword": "xxxxxxx-9f-4307-9d9a-451f3xxxx075",
         "locale": "en_US"
       }
  };
 var url = "https://developer.api.yodlee.com:443/ysl/restserver/v1/cobrand/login";
    var param = JSON.stringify(contextParam);
    var header = {"Content-Type": "application/json"};
    context.simplehttp.makePost(url, param, header);
    return;
}

请记住在将其作为参数添加到 makePost 方法之前对参数(在本例中为 contextParam)进行字符串化。此外,内容类型是应用程序/json。

于 2016-10-25T06:13:44.283 回答