codebird でさらにつぶやき取得

codebird でさらにつぶやき取得

#08 もっとつぶやきを取得しよう
http://dotinstall.com/lessons/more_php_v2/21808
を参考に
max_id をつかって
もっとつぶやきを取得する

注意点つぃては
32bit か 64bit なのかでmax_id の使い方が変わるということ

Linux 環境なら
uname -r で
64bit か 32bit か見れる
ちなみに、私の場合だと
2.6.32-358.18.1.el6.x86_64
なので 64 bit

今回は
max_id をつかってもっとつぶやきを取得する

ちなみに、max_id には
最後のつぶやきのIDが格納されている

これを元に、これより前のものをひっぱってくる

twitter API にも max_id というフィールドがあり
これを指定すれば、これより前のものを
デフォルトなら20件引っ張ってくることができる

このフィールドの説明は
https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline
の英文を参照

編集するのは index.html

とりあえず
コンソールでIDのみの格納が確認できたので

console.log(max_id);

はコメントアウト

編集するところは
$.get() の
{} のところ
more.php を呼び出すときに max_id をパラメータで渡したいので

{max_id:max_id}

とする

次に、more.php も編集する

$tweets = (array)$cb->statuses_userTimeline($params);

を if で条件分岐するようにする

max_id がセットされているか判別するには

if(isset($_GET['max_id'])){

で判別できる

isset() は、指定した変数がセットされているか判定する
これについては
http://php.net/manual/ja/function.isset.php
のリファレンスを参照

ここで行う処理は max_id を $params へセットする

$params['max_id'] = $_GET['max_id'];

そして、パラメータにカウントを入れる
これは、何回とってくるか、という設定

デフォルトでは20件
今回は、次の20件を取得したい
max_id は最後の
つぶやきになるので、それを含めて取得するので
21件になる

$params['count']=21;

そして、先頭の1件を削除するので

$tweets = (array)$cb->statuses_userTimeline($params);
array_shift($tweets);

とする

array_shift() は
http://php.net/manual/ja/function.array-shift.php
のリファレンスにあるように
先頭の要素を1つ取り出す
つまり、21だったのが20になる

つまり、これで前回の最後のつぶやきを含めて21件取得し
新たに取得した1番めが
前回の最後のつぶやきと重なるので
array_shift() で削除することで
新しく20件取得しているように見える
という仕組み

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です