2011-07-13 4 views
1

Voici donc le scénario que j'ai essayé de résoudre. Un utilisateur vient sur notre site, télécharge un fichier, ce fichier est envoyé à une collection google docs et génère un lien vers ce document qui est envoyé par e-mail à un administrateur. J'ai une page des annonces que je voudrais mettre à jour automatiquement via ce script pour inclure le lien vers le document dans l'annonce ... voici le codeGoogle Apps Script - Document et annonces

function newAnnouncement(parameter){ 
    var site = SitesApp.getPageByUrl("https://sites.google.com/a/westcongps.com/dhcorpintranettestsite/company-blog"); 
    site.createAnnouncement("this is the title", '<a href="' + parameter + '">LINK TEXT</a>'); 
} 

function doGet(e) { 
    // creates the ui application 
    var app = UiApp.createApplication(); 
    // set's up the application user interface. 
    var form = app.createFormPanel().setId('frm').setEncoding('multipart/form-data'); 
    var formContent = app.createVerticalPanel(); 
    form.add(formContent); 
    var fileUp = app.createFileUpload().setName('thefile'); 
    var submit = app.createSubmitButton('Submit'); 
    formContent.add(fileUp); 
    formContent.add(submit); 
    app.add(form); 
    submit.setPixelSize(75, 20); 

    return app; 
} 

function doPost(e) { 
    // data returned is a blob for FileUpload widget 
    var fileBlob = e.parameter.thefile; 
    var doc = DocsList.createFile(fileBlob); 
    //var to store the folder the file will be uploaded to 
    var folder = DocsList.getFolder("collection"); 
    //adds the document to the folder ^^^ 
    doc.addToFolder(folder); 
    var emailAddress = "[email protected]"; 
    var subject = "subject"; 
    var body = "A new quote has been requested, please process the attachment"; 
    // send a notification email with attached file or link to uploaded file 
    //gets the URL of the uploaded document 
    var docUrl = doc.getUrl(); 
    //adds the body text to the doc url to create the body message 
    var bodyUrl = body + "\n" + docUrl; 
    // gets the page I would like to post the announcement on 
    var site = SitesApp.getPageByUrl("http://example.com/announcements-page"); 
    site.createAnnouncement("this is the title", '<a href="linkToGoogleDoc">LINK TEXT</a>'); 
    MailApp.sendEmail(emailAddress, subject, bodyUrl); 
    app.close(); 
    return app; 
} 

Quelqu'un pourrait-il me aider à obtenir le "docUrl" dans l'annonce? Je vous remercie.

la fonction newAnnouncement(parameter) peut être ignoré, il est là au cas où il pourrait vous aider à me aider :)

Répondre

0

Vous devriez pouvoir obtenir ce travail si vous changez cette ligne:

site.createAnnouncement("this is the title", '<a href="linkToGoogleDoc">LINK TEXT</a>'); 

à this:

site.createAnnouncement("this is a title", '<a href="' + docUrl + '">LINK TEXT</a>'); 

Assurez-vous que pour chaque nouvelle annonce, vous attribuez un nouveau titre à l'annonce. Par exemple, vous ne pouvez pas utiliser "ceci est un titre" plus d'une fois. Si vous effectuez ces modifications et que cela ne fonctionne toujours pas, essayez d'envelopper cette ligne dans un bloc try/catch et consignez l'exception pour voir ce qui ne va pas.

try { 
    site.createAnnouncement("this is a title", '<a href="' + docUrl + '">LINK TEXT</a>'); 
} catch (err) { 
    Logger.log(err); 
} 
Questions connexes