2013-01-09 1 views
1

Я работаю над довольно простым инструментом для ping владельца сайта, когда посетитель интересуется интересным поведением на сайте (в частности, публикует комментарий в гостевой книге, поэтому код находится в приложение для гостевой книги).вызов getOwners() в контейнере сценария приложения

Во всяком случае, код интереса выглядит следующим образом:

var siteOwners = SitesApp.getActivePage().getOwners(); 
for (var i = 0; i < siteOwners.length; i++) { 
    GmailApp.sendEmail(siteOwners[i].getEmail(), "Comment added to your site", "ping"); 
} 

Проблема, конечно, является то, что SitesApp.getActivePage() и SitesApp.getActiveSite() возвращают нуль в этом контексте.

Возможно, это происходит потому, что вместо использования новых контейнеров приложений псевдо-GUI я делаю все это из метода doPost (e) с помощью HTMLService в качестве пользовательского интерфейса, так как UiService и GUIBuilder были слишком медленными, чтобы быть полезными (~ 10 секунд между рендерингом базовой страницы и визуализацией интерфейса гостевой книги).

Любые советы или идеи были бы полезными, особенно если это связано с «перейдите сюда и прочитайте этот документ, чтобы понять среду приложений для appscript».

ответ

0

Метод getOwners() для класса page[] не существует. page class documentation

Метод getAuthors() существует, возможно, вы можете использовать его в качестве решения.

function doGet(e) { 
var app = UiApp.createApplication().setTitle("site owner"); 
var siteOwners = SitesApp.getActivePage().getAuthors(); 
app.add(app.createLabel(siteOwners.length)) 
for (var i = 0; i < siteOwners.length; i++) { 
    app.add(app.createLabel(siteOwners[i])); 
} 
return app.close(); 
} 

Это сделало мою работу без почты.

working example

 Смежные вопросы

  • Нет связанных вопросов^_^