我正在使用Webhooks,我正在尝试从我的node.js代码运行一个Curl请求。我正在使用npm request 包来执行此操作。我无法找到将Curl请求转换为将发送请求的应用程序中的代码的正确方法。
这是卷曲请求:
curl -X POST https://tartan.plaid.com/connect \
-d client_id=test_id \
-d secret=test_secret \
-d username=plaid_test \
-d password=plaid_good \
-d type=wells \
-d options='{
"webhook":"http://requestb.in/",
"login_only":true }'
当我在终端中运行它时工作正常,因此我知道凭据有效并且它正在与服务器通信。
这是我的Node.js代码:
var request = require('request');
var opt = {
url: 'https://tartan.plaid.com/connect',
data: {
'client_id': 'test_id',
'secret': 'test_secret',
'username': 'plaid_test',
'password': 'plaid_good',
'type': 'wells',
'webhook': 'http://requestb.in/',
'login_only': true
}
};
request(opt, function (error, response, body) {
console.log(body)
});
它应该返回项,但我得到的只是:
{
"code": 1100,
"message": "client_id missing",
"resolve": "Include your Client ID so we know who you are."
}
所有凭据都来自Plaid网站,它们在我的终端中工作得很好,所以我认为这就是我编写导致问题的Node.js代码的方式。
如果有人可以帮助我找到正确的方法来编写节点代码,那么它就会完成curl请求在终端中所做的工作,这将是值得赞赏的!谢谢!
答案 0 :(得分:1)
您可能希望在选项中使用form:
代替data:
。希望这会成功。
答案 1 :(得分:1)
request的默认方法是GET。您想要一个POST,因此您必须将其设置为参数。您还必须根据documentation将数据作为JSON发送。所以我相信这应该有效:
<div class="parent">
<div class="tooltip"><a href="#">This</a> is a tooltip wannabe with a link.<br />You can go ahead and style it up so it looks more like a tooltip, or you could look into existing tooltip or popover plugins/libaries and use something that's tested cross-browser/cross-device. <br />
Intended as proof of concept.
</div>
<img src="https://source.unsplash.com/random/800x500">
</div>
答案 2 :(得分:1)
有关curl命令实际执行操作的说明,请参阅explainshell: curl -X -d
。
要使用request进行复制,您必须相应地对其进行配置:
getCellView()
有关更多示例,请参阅application/x-www-form-urlencoded。