PHPでfacebook(fb)内を検索しています。graphAPIを使い、「うどん」をキーワードにし「ページ」を検索したら、478件ありました。この外側にループを作り、同じqueryを複数回実行しました。すると、わずかに結果内容が異なるのです。3回実行した結果いずれとも重複してない「うどん」のidは、1件、7件、11件…。
それで、「since」を使い24時間以内、12時間以内などと短くしていったら、データが全て重複するという結果に…439件のときでした。「since」を使った結果、「page」内でN時間以内に更新されたidは439件だった、ということになりそうです。
- 検索結果が400件を超えたら、データ溢れを疑う
- 同一検索をループで複数回実行し、齟齬があれば、データ溢れを疑う
- データ溢れが疑われる場合、絞り込みのため、適当なパラメータを追加する
- since:時間区切りによる制約
- location:場所による制約
- place:場所による制約
あれ?場所による制約が二通りになるのか…。
ということで、locationを調べてみました。
こちらはplace↓
Graph API Reference: Place
全体はこちら↓
Graph API Reference
よくわからんのは、placeが「id、location、name、overall_rating」を含んでいる、つまりplaceの方が上位に分類される、ということみたいであります。
すると、「札幌」で検索結果が揺れた「place」は、location部分から情報を得ていた…の・か・な?それで結果に揺れが出ていたということは、信頼性が…などと、本文記載部分と基本データ部分のことがゴチャゴチャになって爺も整理がつかない…。
条件を適当に絞り込んでそれがfb全体から得た検索結果、と思えるようにするには…はて…くるしむ(ふりをする)爺でありました…。混乱中の爺であります…バタッ。