Je souhaite envoyer un e-mail via l'API Google sans les paramètres inutiles OAUTH2. J'ai seulement le access_token et le refresh_token de cet utilisateur. Comment puis-je envoyer un e-mail via l'API Gmail via une requête POST de base dans NodeJS, avec le plugin Request npm?Envoyer un e-mail à l'aide de l'API Google avec le seul jeton d'accès
Répondre
abraham est correct, mais je pensais juste vous donner un exemple.
var request = require('request');
server.listen(3000, function() {
console.log('%s listening at %s', server.name, server.url);
// Base64-encode the mail and make it URL-safe
// (replace all "+" with "-" and all "/" with "_")
var encodedMail = new Buffer(
"Content-Type: text/plain; charset=\"UTF-8\"\n" +
"MIME-Version: 1.0\n" +
"Content-Transfer-Encoding: 7bit\n" +
"to: [email protected]\n" +
"from: [email protected]\n" +
"subject: Subject Text\n\n" +
"The actual message text goes here"
).toString("base64").replace(/\+/g, '-').replace(/\//g, '_');
request({
method: "POST",
uri: "https://www.googleapis.com/gmail/v1/users/me/messages/send",
headers: {
"Authorization": "Bearer 'access_token'",
"Content-Type": "application/json"
},
body: JSON.stringify({
"raw": encodedMail
})
},
function(err, response, body) {
if(err){
console.log(err); // Failure
} else {
console.log(body); // Success!
}
});
});
Ne pas oublier de changer l'adresse e-mail et de l'expéditeur pour recepteur l'exemple de travailler.
Il existe two methods pour attacher OAuth2 access_tokens à une demande API Google.
- Utilisation du paramètre de requête access_token comme ceci:
?access_token=oauth2-token
- En utilisant l'en-tête d'autorisation HTTP comme ceci:
Authorization: Bearer oauth2-token
Le second est préféré pour les requêtes POST si la requête HTTP première pour l'envoi d'un e-mail ressemblerait à quelque chose comme ça.
POST /gmail/v1/users/me/messages/send HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer oauth2Token
{"raw":"encodedMessage"}
Quelle est la différence entre l'utilisation de Bearer ou OAuth dans l'en-tête Authorization? Exemple: ''Autorisation': 'OAuth' + compte.access_token, – Yagiz
'Autorisation: Au porteur ...' est [OAuth 2] (https://tools.ietf.org/html/rfc6749#section-7.1),' Autorisation: OAauth ... 'est [OAuth 1] (https://tools.ietf.org/html/rfc5849#section-3.5.1). Bien que je suis sûr qu'il y a d'autres utilisations pour les deux. – abraham
Comment puis-je générer Access_token pour l'utilisateur sans tracas massifs? –