Via un bouton, prendre en imprim ecran une feuille et importer discord
Bonjour !
Je sais que c'est possible car je l ai connu y a fooooooooooooooooort longtemps sur un fichier de la meme sorte mais impossible de retrouver le créateur ! ^^
Ma question est : qu'elle est la manip à faire (Considerez moi comme plus que débutante, donc si possible faire des réponses avec des mots simple haha) pour pouvoir en cliquant sur un bouton mis sur une feuille, à prendre en image la feuille et la transmettre automatiquement sur un salon discord dédié ?
Je peux faire l'ancienne technique du copier/Coller mais c'est "long" et cette manip je dois la faire assez rapidement ! Emballé c est pesé !
J espere m'etre fait bien comprendre.. Merci à vous pour le temps accordé à ma demande !
Bonjour,
Pour ce qui est de cliquer sur un bouton, lancer l'impression de la page c'est plutôt simple, par contre pour l'envoyer automatiquement sur une application j'ignore comment faire, voici un code permettant d'imprimer une feuille et envoyer par mail, vous pouvez partir de cette base :
function savePDF()
{
// Selection de la feuille à PDFiser
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
//générer URL de la feuille
var ssUrl = ss.getUrl();
var sheetId= sheet.getSheetId();
var url = ssUrl.replace(/\/edit.*$/,'') // ici sont indiquées les caractéristiques de l'impression PDF, il necessite d'adapter les marges, orientation en fonction de vos données.
+ '/export?exportformat=pdf&format=pdf'
+ '&size=A4'
+ '&portrait=true'
+ '&fitw=true'
+ '&top_margin=-0.95'
+ '&bottom_margin=0.50'
+ '&left_margin=0.50'
+ '&right_margin=0.50'
+ '&sheetnames=false'
+ '&printtitle=false'
+ '&pagenum=false'
+ '&gridlines=false'
+ '&fzr=FALSE'
+ '&gid='+sheetId;
// Création du nom du PDF, dans mon cas une cellule située en A6, vous pouvez y mettre un nom directement, ou bien un autre celulle.
var docName = sheet.getRange('A6').getValue();
// CRÉER LE PDF A PARTIR DE L'URL
var token = ScriptApp.getOAuthToken();
var docurl = UrlFetchApp.fetch(url, { headers: { 'Authorization': 'Bearer ' + token } });
var pdf = docurl.getAs('application/pdf').setName(docName);
var file = DriveApp.createFile(pdf);
// enregistrement du PDF dans le Drive
var folder = DriveApp.getFolderById(""17LmzDRdzPpH3zt_4rufGLnGXbBWbQNo5"");/* Important ! > Ici on doit mettre l'adresse du dossier drive où on veut sauvegarder le PDF, allez dans votre dossier et dans la barre d'URL en haut copier le code qui ressemble à ça : 0AGuVhN09TP00Uk9PVA */
var finalFile = file.moveTo(folder);
var docUrl = finalFile.getUrl();
// Envoi du PDF par mail
var demandeurEmail = sheet.getRange('F5').getValue(); /* ici l'adresse mail de mon destinataire se situe dans une cellule, il est possible de changer directement l'information, ou de mettre une autre cellule */
var message = ""Bonjour""+""<p>Ci-joint le ""+docName+""</p>""+""<a href='""+docUrl+""'>Cliquez ici pour ouvrir le recap.</a>""; // texte du mail
MailApp.sendEmail({to:demandeurEmail , subject: """"+docName, htmlBody:message}) ;
// facultatif, cela sert à confirmer à l'utilisateur que le mail à bien été envoyé
var demandeur = ""Prénom NOM""; // nom du destinataire
var ui = SpreadsheetApp.getUi();
ui.alert(""Le ""+ docName +"" a bien été créé\n et été envoyé à ""+ demandeur +"" "");
}
}Arf !
J'ai pas encore essayé mais vais tenter de prendre votre réponse <3 D ailleurs merci pour celle ci et surtout merci pour les explications ^^ N etant pas très douée !
Pour ce qui est discord.. Pensez vous, à vous comme aux autres qui verront ou non ce message, que nous devons passer par un "Webhooks" ? Je sais pas du tout de ce que je dis mais si vous vous connaissez mieux que moi...
En attendant je vais tenter votre réponse Pierre et merci pour tout ! <3
Bonjour,
En effet, si l'application Discord propose une API, il est possible de communiquer via Google Apps Script et y envoyer des données, chaque API est différente, mais si vous connaissez la requête à passer, voici une base :
function pushApi() {
// c'est le token API
var tokenAPI = 'XXXXXXXX';
// c'est le code à envoyer à l'API
var query = 'REQUETE API ';
// URL de l'API
var url = "https://api.test.com";
// headers + query
var options = {"headers": {"Authorization": "Bearer "+tokenAPI,
"Content-Type": "application/json"
},
"payload": JSON.stringify({query}),
"method": "POST"
}
var reponse = UrlFetchApp.fetch(url, options);
Logger.log(reponse);
var json = reponse.getContentText();
Logger.log(JSON.stringify(reponse))Eh bien merci infiniment !
Je vais vérifier cela plus amplement et merci merci merci ! ♥