Bonjour,

J'ai plusieurs onglets sur un fichier google sheets et j'aimerai choisir un onglet, le convertir en PDF et l'envoyer ensuite par email.

Mon probleme est au niveau du token et de la fonction URrLFetchApp.fetch
Je recois une erreur du type
Request failed forhttps://docs.google.com returned code 401. Truncated server response: <HTML> <HEAD>
D'apres mes recherche, il s'agirait d'une histoire de token et de long-lived refresh token, mais je ne comprend pas comment corriger cela.

Merci par avance pour votre aide !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function emailPDF() {
 
// Define your variables here
 
 
var recipient='XXX@privetechnologies.com';
var subject='data - Timesheet submission'
var body="Hello,\n\nPlease find attached this week timesheet reporting.\n\nThank you,\nYOURNAME";
var nameOfSender='BLA';
 
// End of the stuff you need to edit
 
 
// Below, the sheet is converted to pdf in a blob object and that object
// is sent by email with the email-parameters above.
 
 
 
// Other stuff 
var ss = SpreadsheetApp.getActiveSpreadsheet();
//var ssId = SpreadsheetApp.getActiveSpreadsheet().getId();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//var sheetName = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
//var sheetId = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getSheetId();
 
// Base URL
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
 
/* Specify PDF export parameters
From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
 */
 
var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
     + '&size=A4' // paper size legal / letter / A4
     + '&portrait=true' // orientation, false for landscape
     + '&fitw=true&source=labnol' // fit to page width, false for actual size
     + '&sheetnames=false&printtitle=false' // hide optional headers and footers
     + '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
     + '&fzr=false' // do not repeat row headers (frozen rows) on each page
     + '&gid='; // the sheet's Id
 
var token = ScriptApp.getOAuthToken();
 
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {                                 
        headers : {
            'Authorization' : 'Bearer ' + token
        }
    }).getBlob().setName(sheet.getName() + ".pdf");
 
sheet_as_pdf_blob_document=response;
 
 var message = {
    to: recipient,
    subject: subject,
    body: body,
    name: nameOfSender,
    attachments: [sheet_as_pdf_blob_document]
  }
 
   MailApp.sendEmail(message);
}