2017-08-23 18 views
0

私はすべてのカレンダーリソースのリストを生成するためにシンプルなGoogleアプリケーションスクリプトを作成しようとしています(私はデータを取得したら何をすべきか他にも考えています)。どんな理由であれ、私が標準をやってみると、ページトークンは無期限に増加するようです。私は多くの同様のスクリプトを書いてきましたが、AdminDirectory.Resources.Calendars.listを初めて使用しています。私が見る限り、これは文書化されていないバグです(または私は間違ったことをしています。それ)。AdminDirectory.Resources.Calendars.listとpageToken

例を示します。私はスーパー管理者ですから、自分の資格情報を使用していて、同じデータを連続してループしています。

function listAllCalendars() { 
var calendars, pageToken; 
do { 
    calendars = AdminDirectory.Resources.Calendars.list("my_customer"); 
    if (calendars.items && calendars.items.length > 0) { 
    for (var i = 0; i < calendars.items.length; i++) { 
     var calendar = calendars.items[i]; 
     Logger.log('%s (ID: %s)', calendar.resourceId, calendar.resourceName, calendar.resourceDescription); 
    } 
    } else { 
    Logger.log('No calendars found.'); 
    } 
    pageToken = calendars.nextPageToken; 
} while (pageToken); 
} 

これは別の例です。これは100の結果と100の結果しか返しません(私はmaxResultsにいくつかの異なる値を試しましたが、100の結果が返されます)。

function getAllCalendars(){ 
var calendars = AdminDirectory.Resources.Calendars.list("my_customer"); 
Logger.log(calendars.items.length); 
    if (calendars.items && calendars.items.length > 0) { 
    for (var i = 0; i < calendars.items.length; i++) { 
     var calendar = calendars.items[i]; 
     Logger.log('%s (ID: %s)', calendar.resourceId, calendar.resourceName, calendar.resourceDescription); 
    } 
    } else { 
    Logger.log('No calendars found.'); 
    } 
} 

ご協力いただきましてありがとうございます。 Appsスクリプト、カレンダーリスト方式で

答えて

0

は、次のオブジェクトを取ります。

リスト(文字列顧客、オブジェクトoptionalArgs

文字列の顧客が自分のドメインまたはmy_customerになります。

optionalArgsの場合は、maxResultsとpageTokenを指定できます。

オプションの引数がリストメソッドの一部として欠落していました。

オプションの引数を含むようにコードを更新しました。今はうまくいくはずです。

希望これはホセフィードバックのために、私のコードの問題をスポッティングため:-)

function listAllCalendars() { 

var calendars, pageToken; 

do { 

    var arguments = { 
     maxResults: 200, 
     pageToken: pageToken 
    }; 
    calendars = AdminDirectory.Resources.Calendars.list("my_customer",arguments); 
    if (calendars.items && calendars.items.length > 0) { 
    for (var i = 0; i < calendars.items.length; i++) { 
     var calendar = calendars.items[i]; 
     Logger.log('%s (ID: %s)', calendar.resourceId, calendar.resourceName, calendar.resourceDescription);  
    } 
    } else { 
    Logger.log('No calendars found.'); 
    } 
    pageToken = calendars.nextPageToken; 
} while (pageToken); 
} 
+0

感謝を助けます。興味深いのは、私の元のコードには引数が含まれていましたが、私のテストコードはここにはありませんでした。 –

関連する問題