2017-08-10 4 views
0

Est-il possible de créer une notification par e-mail pour toute nouvelle annonce effectuée sur un site google?Envoyer une notification par e-mail pour une nouvelle annonce sur un site Google

Lorsque je crée une nouvelle annonce que je souhaite l'avoir envoyé à toutes les personnes qui sont inscrits dans une liste de diffusion. Si c'est possible, quelles sont les meilleures options à utiliser? Devrais-je le faire avec un script Google App ou utiliser un autre service?

Voici que j'ai trouvé en ligne sur Google App Script mais il ne semble pas travailler:

function myFunction() { 

var url_of_announcements_page = "https://sites.google.com/announcements-page-link"; 
var who_to_email = "[email protected]" 

function emailAnnouncements(){ 
    var page = SitesApp.getPageByUrl(url_of_announcements_page); 
    if(page.getPageType() == SitesApp.PageType.ANNOUNCEMENTS_PAGE){ 

    var announcements = page.getAnnouncements({ start: 0, 
               max: 10, 
               includeDrafts: false, 
               includeDeleted: false}); 
    announcements.reverse();          
    for(var i in announcements) { 
     var ann = announcements[i]; 
     var updated = ann.getLastUpdated().getTime(); 
     if (updated > ScriptProperties.getProperty('last-update')){ 
     var options = {}; 

     options.htmlBody = Utilities.formatString("<h1><a href='%s'>%s</a></h1>%s", ann.getUrl(), ann.getTitle(), ann.getHtmlContent()); 

     MailApp.sendEmail(who_to_email, "Announcement "+ann.getTitle(), ann.getTextContent()+"\n\n"+ann.getUrl(), options); 

     ScriptProperties.setProperty('last-update',updated); 
     } 
    } 
    } 
} 

function setup(){ 
    ScriptProperties.setProperty('last-update',new Date().getTime()); 
} 
} 

EDIT: Je vais vérifier cette question régulièrement pour voir les meilleures réponses et espérons aider tout le monde qui a besoin d'une option comme celle-ci sur leur site.

Répondre

1

Voici le code final j'ai obtenu après plusieurs questions sur ce site. Voici le crédit à tous les utilisateurs qui me ont aidé perfectionner: Ritz, Michelle et James Donnellan. Ce sont les questions auxquelles ils ont répondu pour m'aider: Post 1, Post 2, et Post 3. Pour accomplir cette tâche, vous pouvez utiliser ces codes que je prefected du premier projet:

Celui-ci vous oblige à écrire tous les e-mails que vous souhaitez envoyer la notification dans une ligne, séparés par une virgule:

var url_of_announcements_page = "https://sites.google.com/a/announcements"; 
var who_to_email = ("[email protected]"); 

function emailAnnouncements(){ 
    var page = SitesApp.getPageByUrl(url_of_announcements_page); 
    if(page.getPageType() == SitesApp.PageType.ANNOUNCEMENTS_PAGE){ 

    var announcements = page.getAnnouncements({ start: 0, 
               max: 10, 
               includeDrafts: false, 
               includeDeleted: false}); 
    announcements.reverse();          
    for(var i in announcements) { 
     var ann = announcements[i]; 
     var updated = ann.getLastUpdated().getTime(); 
     if (updated > PropertiesService.getScriptProperties().getProperty("last-update")){ 
     var options = {}; 

     options.htmlBody = Utilities.formatString("<h1><a href='%s'>%s</a></h1>%s", ann.getUrl(), ann.getTitle(), ann.getHtmlContent()); 

     MailApp.sendEmail(who_to_email, "Notification - '"+ann.getTitle()+"'", ann.getTextContent()+"\n\n"+ann.getUrl(), options); 

     PropertiesService.getScriptProperties().setProperty('last-update',updated); 
     } 
    } 
    } 
} 

function setup(){ 
PropertiesService.getScriptProperties().setProperty('last-update',new Date().getTime()); 
} 

celui-ci vous oblige à mettre en place un groupe de contact dans Gmail et d'ajouter dans tous les e-mails que vous souhaitez notifier:

var url_of_announcements_page = "https://sites.google.com/a/announcements"; 
var who_to_email = []; 
var contacts = ContactsApp.getContactGroup('Contact Group').getContacts(); 
for(var i in contacts){ 
    who_to_email.push(contacts[i].getPrimaryEmail()); 
    } 

function emailAnnouncements(){ 
    var page = SitesApp.getPageByUrl(url_of_announcements_page); 
    if(page.getPageType() == SitesApp.PageType.ANNOUNCEMENTS_PAGE){ 

    var announcements = page.getAnnouncements({ start: 0, 
               max: 10, 
               includeDrafts: false, 
               includeDeleted: false}); 
    announcements.reverse();          
    for(var i in announcements) { 
     var ann = announcements[i]; 
     var updated = ann.getLastUpdated().getTime(); 
     if (updated > PropertiesService.getScriptProperties().getProperty("last-update")){ 
     var options = {}; 

     options.htmlBody = Utilities.formatString("<h1><a href='%s'>%s</a></h1>%s", ann.getUrl(), ann.getTitle(), ann.getHtmlContent()); 

     MailApp.sendEmail(who_to_email, "Notification - '"+ann.getTitle()+"'", ann.getTextContent()+"\n\n"+ann.getUrl(), options); 

     PropertiesService.getScriptProperties().setProperty('last-update',updated); 
     } 
    } 
    } 
} 

function setup(){ 
PropertiesService.getScriptProperties().setProperty('last-update',new Date().getTime()); 
} 

Hope this helps tous ceux qui souhaitent le faire!

1

Romain Vialard a une feuille de calcul avec le code associé que j'ai utilisé pour autoriser les individus à Subscribe to Changes for Site Viewers qui envoie une notification. Le code est ouvert pour que vous puissiez l'afficher et le modifier si nécessaire. Il a quelques options pour ce qui est envoyé.