2

私は、訪問者がサイトで興味深い行動をとったときにサイト所有者に ping を送信するための非常に単純なツールに取り組んでいます (具体的には、ゲストブックのコメントを投稿するため、コードはゲストブック アプリにあります)。

とにかく、対象のコードは次のようになります。

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() の両方が null を返すことです。

UiService と GUIBuilder の両方が遅すぎるため、新しい疑似 GUI アプリ コンテナーを使用するのではなく、ユーザー インターフェイスとして HTMLService を使用して doPost(e) メソッド内からすべてを実行しているため、これがすべて発生している可能性があります。使用できるようにします (基本ページのレンダリングとゲストブック インターフェイスのレンダリングの間に約 10 秒)。

特に「ここにアクセスしてこのホワイトペーパーを読んで、appscript のアプリケーション環境を理解する」ことが含まれる場合は、アドバイスやアイデアが役立ちます。

4

1 に答える 1

0

クラスのgetOwners()メソッドがpage[]存在しません。ページクラスのドキュメントを確認してください

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();
} 

これは私のためにメールのことなしで仕事をしました。

実例

于 2013-01-10T01:29:19.657 に答える