Google Apps Script - Документы и объявления - PullRequest
1 голос
/ 13 июля 2011

Итак, вот сценарий, который я пытался решить.Пользователь заходит на наш сайт, загружает файл, который отправляется в коллекцию документов Google и генерирует ссылку на этот документ, которая отправляется администратору по электронной почте.У меня есть страница объявлений, которую я хочу автоматически обновлять с помощью этого сценария, чтобы включить ссылку на документ в объявление ... вот код

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 = "me@example.com";
    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;
}

Может ли кто-нибудь помочь мне с получением "docUrl"в объявление?Спасибо.

функцию newAnnouncement(parameter) можно игнорировать, она может помочь вам помочь:)

1 Ответ

0 голосов
/ 26 августа 2011

Вы должны иметь возможность заставить это работать, если вы измените эту строку:

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

на эту:

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

Убедитесь, что для каждого нового объявления вы даетеОбъявление о новом названии.Например, вы не можете использовать «это название» более одного раза.Если вы вносите эти изменения, но они все еще не работают, попробуйте обернуть эту строку в блок try / catch и зарегистрировать исключение, чтобы увидеть, что происходит не так.

try {
  site.createAnnouncement("this is a title", '<a href="' + docUrl + '">LINK TEXT</a>');
} catch (err) {
  Logger.log(err);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...