Tôi đang sử dụng máy chủ Node JS và cố gắng lấy mã thông báo truy cập từ Adwords API. Để thực hiện yêu cầu POST, tôi sử dụng curler từ npm (https://www.npmjs.org/package/curler). Dưới đây là các mẫu mã:Node js Adwords Api
var login = '[email protected]';
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);
});
Câu trả lời tôi nhận được là
statusCode: 403
bodyData: Error=BadAuthentication
mà về cơ bản nói rằng thông tin đăng nhập là sai, mà không phải là. Không thể tìm ra liệu tôi đã chọn triển khai sai hay chỉ thiếu tiêu đề hay gì đó.
Tôi cho rằng thông tin đăng nhập thông thường của bạn không đủ và bạn cần phải đăng ký mã thông báo API hoặc một số phương pháp xác thực khác. –
Vấn đề là, cùng một phương thức hoạt động trong php thông qua curl, mà không sử dụng ứng dụng adwords hoặc khóa api của nhà phát triển –
Bạn đã từng làm việc này chưa? Một ví dụ chức năng sẽ là tuyệt vời. – mz3