使用node-soap连接Bing Ads API

4
我正在尝试使用 node-soap 连接到 bing 广告 soap api。如 bing 的 文档 所建议,我已创建了请求。但每次尝试连接时,响应都会显示“无效凭据”(错误代码-105),“认证失败。提供的凭据无效或帐户未激活。”。
我能够使用 bing 提供的示例 C# 代码对 API 进行身份验证。因此,清楚凭据/令牌完全正常工作。
有没有办法确定我的方法或我的 node 代码中的问题?
soap.createClient(url, function (err, client) {
    if (err) {
        console.log("err", err);
    } else {
        client.addSoapHeader({
            'AuthenticationToken': '<AuthenticationToken>',
            'DeveloperToken': '<DeveloperToken>',
            'CustomerId': '<CustomerId>',
            'CustomerAccountId': '<CustomerAccountId>',
        });        
        client.SubmitGenerateReport(args, function (err, result) {
            if (err) {
                console.log("err", err.body);
            } else {
                console.log(result);
            }
        });
    }
});

PS: Bing文档很烂。万岁Stackoverflow!


你解决了吗?你介意分享一下方法吗?谢谢。 - Christoph
你们俩中谁把它搞定了?现在可以分享一下吗? - Amit
@amit,很抱歉我没有。现在我正在使用其他工具来访问API,因为我主要需要它进行分析。 - Christoph
@Christoph,抱歉回复晚了。是的,我已经解决了。当我将我的请求XML与WcfTestClient生成的请求XML进行比较时,我发现我的请求格式不正确。修正后,我就能够调用API了。希望这有所帮助 :) - Dpk
谢谢,我已经通过这个问题发布的答案使它工作了。 - Amit
@Dpk,如果可能的话,你能分享一下完整的代码吗?你是如何生成AuthenticationToken的?有没有使用Node.js生成的方法? - Yusuf Khan
1个回答

5

您需要在标头中的每个键前加上tns,例如:tns:AuthenticationToken


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接