Я пытаюсь создать приложение Chrome и хочу отправить по электронной почте . Я нашел это , но я не могу понять, как это работает.
function sendMessage(userId, to, subject, email) {
authUser(function() {
var base64EncodedEmail = btoa(email);
var request = gapi.client.gmail.users.messages.send({
'userId': userId,
'message': {
'raw': base64EncodedEmail,
'headers': [
{'To': to},
{'Subject': subject}
]
}
});
request.execute();
});
}
function authUser(callback) {
chrome.identity.getAuthToken({'interactive': true}, function(token) {
// load Google's javascript client libraries
var url = "https://www.googleapis.com/gmail/v1/users/me/messages/send?access_token=" + token;
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState !== 4 || request.status !== 200) {
return;
}
var response = JSON.parse(request.responseText);
console.log(response);
callback();
}
;
request.open('POST', url, true);
request.send();
request.setRequestHeader('Authorization', 'Bearer ' + token);
});
}
Я поместил код в background.js (вызовите sendMessage при запуске) и получил следующий manifest.json :
{
"name": "Name",
"description": "Description",
"permissions": [
"storage",
{ "fileSystem": ["write"] },
"identity",
"https://mail.google.com/"],
"version": "1.0",
"manifest_version": 2,
"oauth2": {
"client_id": "XXXXX.apps.googleusercontent.com",
"scopes": [
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/gmail.send"
]
},
"app": {
"background": {
"scripts": [
"background.js"]
}
},
"icons": { "16": "images/mailling-16.png", "128": "images/mailling-128.png" }
}
Итак, я понимаю, что нам нужно установить соединение (с нашими учетными данными) с помощью Gmail API , а затем мы отправим письмо .
Но у меня ошибка HTTP 400 при запросе POST и запросе сервера: 'raw' строка сообщения полезной нагрузки RFC822 или загрузка сообщения через / upload / * Требуется URL-адрес
Я не понимаю, почему он ожидает сообщения, в то время как мы устанавливаем соединение: I