1. facebookのいいねしているユーザーの取得

    タイトルの通りですが、投稿に対していいねしているユーザーの一覧を取得します。

    phpから取得します。



    前提として、


    • faceboookアプリ登録

    • facebook.phpのダウンロード

    • 投稿idの取得


    が済んでいるとします。
    <?php
    require_once('../sdk/facebook.php');
    $facebook= array(
    'appId' => 'アプリID',
    'secret' => 'シークレットキー'
    );

    header("Content-Type: text/html; charset=UTF-8");

    try {
    $post_id = "投稿ID";
    $url = "/$post_id/likes?limit=1000";
    $results = getLikes($facebook, $url);

    echo '<pre>';
    print_r($results);
    echo '</pre>';
    } catch(FacebookApiException $e) {
    print_r($e->getType());
    print_r($e->getMessage());
    }

    /**
    *
    * ポスト内容をいいねしたユーザー取得(再帰的に)
    * @param unknown_type $facebook
    * @param unknown_type $url
    * @param unknown_type $likes
    */
    function getLikes($facebook, $url, $likes = array()){

    $results = $facebook->api($url, 'GET');
    $new_likes = $likes;
    foreach($results['data'] as $like){
    $new_likes[] = $like;
    }

    if(!empty($results['paging']['next'])){
    $GRAPH_HEAD_URL = "https://graph.facebook.com";
    $new_url = $results['paging']['next'];
    $new_url = str_replace($GRAPH_HEAD_URL, "", $new_url);
    return getLikes($facebook, $new_url, $new_likes);
    }

    return $new_likes;
    }
    ?>

     

    limitパラメーターで1000件まで取得してその後は再帰的に取得していますが、limitパラメーターの上限が何件なのかはわかりませんでした。

    デフォルトでは25件のようです。

    尚、facebookページにいいねしているユーザーの一覧は取得できませんでした。(限定的には可)

     

    Posted by Shunsuke Hayashi on 2013年10月25日
    Categories facebook php