グループリストのメンバー出力

1,097 views
Skip to first unread message

chepapa Takahashi

unread,
Jan 19, 2016, 1:02:20 AM1/19/16
to Google Apps API Japan
高橋といいます。

1つのグループアドレス(メーリングリスト)に、最高500アドレス程度の登録があり
リファレンスでは、デフォルトで200アドレスと言うことですが、

試しに以下のスクリプトを作成してみました。

function listGroupMembersTEST() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var GROUP_EMAIL = Browser.inputBox('取得するメーリングリストを入力して下さい。');
  var member = AdminDirectory.Members.list(GROUP_EMAIL, { maxResults: 500});
  var memberList = member.members;
  
  sheet.getRange(1, 2).setValue(GROUP_EMAIL);
  
  var row = 2;
  for (var i = 0; i < memberList.length; i++){
  var mailAdd = memberList[i].email;
  sheet.getRange(row, 1).setValue(i+1);
  sheet.getRange(row, 2).setValue(mailAdd);
  row++;
  }
}

maxResults を500 にすれば、取得できると思いましたが、出来ませんでした。
グループアドレスが500アドレス程度になるときの取得方法を教えてください。

よろしくお願いします。

Tatsuya Nakano

unread,
Jan 19, 2016, 7:07:54 AM1/19/16
to Google Apps API Japan
中野です。

200がmaxのようですね。
以下のページに記載されていました。
[maxResults query string ]
Groups and group members – A default and maximum of 200 entries per page.


maxResultsを超える一覧を取りたい場合は以下の様な手順で行います。
  1. 一覧を取得した際にnextPageTokenという項目があるのでそれを取得。
  2. 1の値をpageTokenパラメーターに設定して再度リクエストを投げる
  3. 1、2をnextPageTokenが取れなくなるまで繰り返す(全件取りたい場合)
1〜200番目を1リクエスト目で取得、201〜400を2リクエスト目で取得・・といった流れです。
GASでも用意されていると思うので試してみてください。



2016年1月19日火曜日 15時02分20秒 UTC+9 chepapa Takahashi:

chepapa Takahashi

unread,
Jan 20, 2016, 3:33:15 AM1/20/16
to Google Apps API Japan
中野様

高橋です。

nextPageTokenの使い方がよくわかっていませんでした。
調べて、組み込み、完成しました。

ありがとうございました。


2016年1月19日火曜日 21時07分54秒 UTC+9 Tatsuya Nakano:
Reply all
Reply to author
Forward
0 new messages