2017-04-26 1 views
0

J'ai vu ce SO thread pour télécharger un fichier en utilisant UrlFetchApp.
Aussi j'ai vu ce SO thread pour poster une chaîne en tant que fichier en python demande (sans avoir un fichier ou créer un fichier temporaire). Je souhaite envoyer une chaîne en tant que fichier dans Google Spreadsheet Script, et sur la base des deux threads ci-dessus, je pense qu'il devrait être possible de le faire sans créer de fichier temporaire dans google drive.Script Google Spreadsheet: Chaîne de téléchargement UrlFetchApp en tant que fichier

Ma question est de savoir comment dans le script Google Spreadsheet je peux prétendre que la chaîne provient d'un fichier et le transmettre à UrlFetchApp?

Voici le code de base Je travaille sur:

var string = 'test'; 
    var url = "https://api.telegram.org/.../sendDocument"; 

    var chat_id = "12345"; 

    var data = {'chat_id': chat_id, 
       'text':text} ; 

    var headers = { "Accept":"application/json", 
        "Content-Type":"application/json" 
       }; 

    var options = { "method":"POST", 
       "headers": headers, 
       "payload" : payload 
       }; 

    var response = UrlFetchApp.fetch(url, options); 
+1

Vous pouvez créer un [nouveau blob] (https://developers.google.com/apps-script/reference/utilities/utilities#newBlob (Byte, String)) à partir d'une chaîne et transmettre le blob en tant que fichier, en fonction sur votre premier poste. Cependant, vous devrez vérifier le document api du service que vous appelez pour savoir comment envoyer un fichier, dans la requête d'url chercher –

+0

@JackBrown Merci! Votre commentaire était vraiment utile. J'étais capable de le faire fonctionner. Posté la réponse ci-dessous. – apadana

Répondre

1

Voici comment je l'ai eu droit d'afficher une chaîne sous forme de fichier:

var url = "https://api.telegram.org/.../sendDocument"; 
var blob = Utilities.newBlob('Test!', 'text/plain', 'report.txt'); 
var data = { 
    'chat_id' : '12345', 
    'document': blob 
}; 
    var options = { 
    'method' : 'POST', 
    'payload' : data, 
}; 

UrlFetchApp.fetch(url, options); 

Merci de commenter de @Jack Brown et google developer example pour l'envoi de blobs (exemple intitulé: Effectuer une requête POST avec des données de formulaire.).