Google+にアクセスする (5/6)
作成:2014-04-26 09:14
更新:2014-04-26 09:14
更新:2014-04-26 09:14
■PageTokenで続きの投稿を得る
投稿リストを取得する場合、「どこまで取り出すか」を考えないといけません。長くGoogle+をやっていれば、下手をすると数千~数万の投稿をしているかも知れませんからね。
そこで、普通は「まず10個取り出しておき、必要に応じてそこから更に10個取り出す」といった具合に、「最後に取り出したところから更に前のものを取り出していく」という形で対応をしていくことになります。
こうした処理に重要となるのが「ページトークン」というものです。先にPlusDomains.Activities.listの説明をしたとき、オプション設定として「pageToken」という項目が用意されていました。これが「ページの区切り」を示すページトークンです。これに区切りとなる「なにか」を設定しておくと、リストを取得する際、その区切りから先(つまりもっと前のもの)の投稿を取り出すようになります。
では、このpageTokenに設定する値は何を用意するのか。それはlistで取得されるActivityFeedにある「nextPageToken」プロパティの値です。これは、listで取得したリストの次のページを示すページトークンです。これをpageTokenに渡すことで、その続きからリストを取得します。
このnextPageTokenは、最後まで投稿を取得し次のページがない場合、nullになります。注意したいのは、PlusDomains.Activities.listを実行するとき、pageTokenがnullだと最初からリストを取得する、という点でしょう。ですから、ページトークンを利用して続きのページを取得する場合、「nextPageTokenがnullでなければ次ページを取得する」というように処理しておく必要があります。
下に、実際の利用例を挙げておきましょう。ここでは10ずつ投稿を取得して表示する作業を10回繰り返し、最大100個前までの投稿をログに出力しています。各ページごとに「access 数字」という形でページ数を表示しているので、どのページのどの投稿があるかわかるでしょう。実際の投稿と比べてみましょう。
そこで、普通は「まず10個取り出しておき、必要に応じてそこから更に10個取り出す」といった具合に、「最後に取り出したところから更に前のものを取り出していく」という形で対応をしていくことになります。
こうした処理に重要となるのが「ページトークン」というものです。先にPlusDomains.Activities.listの説明をしたとき、オプション設定として「pageToken」という項目が用意されていました。これが「ページの区切り」を示すページトークンです。これに区切りとなる「なにか」を設定しておくと、リストを取得する際、その区切りから先(つまりもっと前のもの)の投稿を取り出すようになります。
では、このpageTokenに設定する値は何を用意するのか。それはlistで取得されるActivityFeedにある「nextPageToken」プロパティの値です。これは、listで取得したリストの次のページを示すページトークンです。これをpageTokenに渡すことで、その続きからリストを取得します。
このnextPageTokenは、最後まで投稿を取得し次のページがない場合、nullになります。注意したいのは、PlusDomains.Activities.listを実行するとき、pageTokenがnullだと最初からリストを取得する、という点でしょう。ですから、ページトークンを利用して続きのページを取得する場合、「nextPageTokenがnullでなければ次ページを取得する」というように処理しておく必要があります。
下に、実際の利用例を挙げておきましょう。ここでは10ずつ投稿を取得して表示する作業を10回繰り返し、最大100個前までの投稿をログに出力しています。各ページごとに「access 数字」という形でページ数を表示しているので、どのページのどの投稿があるかわかるでしょう。実際の投稿と比べてみましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
function getposts() {
var token;
var counter = 1;
for(var h = 0;h < 10;h++){
var posts = PlusDomains.Activities.list('115922433044736789610', 'user', {
maxResults: 10,
pageToken: token
});
if (posts.items){
token = posts.nextPageToken;
if (token == null) break;
Logger.log('access ' + counter++);
for(var i = 0;i < posts.items.length;i++){
var item = posts.items[i];
Logger.log('POST:' + item.title);
Logger.log(item.object.content);
var cmts = PlusDomains.Comments.list(item.id);
for(var j = 0;j < cmts.items.length;j++){
Logger.log('comment:' + cmts.items[j].object.content);
}
}
}
}
}
※関連コンテンツ
「Google Apps Scriptプログラミング [中級編]」に戻る