【发布时间】:2014-05-23 01:37:21
【问题描述】:
我正在使用 Node JS 服务器并尝试从 Adwords API 获取访问令牌。为了执行 POST 请求,我使用来自 npm(https://www.npmjs.org/package/curler) 的 curler。这是代码示例:
var login = 'mymail@gmail.com';
var pass = 'mypassword';
var data = JSON.stringify({
Email: login,
Passwd : pass,
accountType: 'GOOGLE',
service: 'adwords',
source: 'adwordstest'
});
var options = {
method: "POST",
url: 'https://www.google.com/accounts/ClientLogin',
headers: {
'Content-Type': 'application/json'
},
data: data,
timeout: 5000,
connectionTimeout: 5000
};
var startDate = Date.now();
curl.request(options, function(err, res, bodyData) {
var duration = (Date.now() - startDate);
if (err) {
console.log(err);
}
else {
console.log('statusCode: %s', res.statusCode);
console.log('bodyData: %s', bodyData);
}
console.log("curler (libcurl) performed http request in %s ms. dnsTime: %s, connectTime: %s, preTransferTime: %s, startTransferTime: %s, totalTime: %s", duration, res.dnsTime, res.connectTime, res.preTransferTime, res.startTransferTime, res.totalTime);
});
我得到的回应是
statusCode: 403
bodyData: Error=BadAuthentication
这基本上说登录信息是错误的,事实并非如此。无法弄清楚我是否选择了错误的实现,或者只是缺少标题或其他东西。
【问题讨论】:
-
我猜你的常规登录是不够的,你需要注册一个 API 令牌或其他一些身份验证方法。
-
问题是,相同的方法通过 curl 在 php 中工作,无需使用 adwords 应用程序或开发人员 api 密钥
-
你有没有得到这个工作?一个功能性的例子会很棒。
标签: javascript node.js api curl google-ads-api