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プログラミング [中級編]」に戻る