0

ページタブアプリケーションを作成します。アプリケーションはいくつかのアイテムを表示し、それぞれに「いいね」ボタンがあります。対応するURLアイテムに付けられたボタンのように。気に入ったユーザーに、10以上のいいねを集めた要素のテキストを表示する必要があります。だから、私はこのコードを書きます:

// Get a link statistics
$link_stat = $fb->api(
    array(
        'method' => 'fql.query',
        'query' => 'SELECT like_count FROM link_stat WHERE url="http://myurl.com/item1.html"'
    )
);

if ((int)$link_stat[0]['like_count'] > 10)
{
    //Get like by current user_id and link object_id
    $like = $fb->api(
        array(
            'method' => 'fql.query',
            'query' => 'SELECT user_id, object_id FROM like WHERE user_id=me() AND object_id IN (SELECT id FROM object_url WHERE url="http://myurl.com/item1.html")'
        )
    );

    var_dump($like);
}

このコードは、リクエストの許可*user_likes*と*read_stream*で実行しますが、出力されますarray(0) { }。問題は、現在のユーザーが対応するリンクを気に入ったことをどうやって知ることができるかということです。

4

2 に答える 2

1

あ、ちな… url_likeというテーブルがあるのに気がつきませんでした(最近出てきた?)。この FQL クエリを作成したところ、必要な応答が返されました。

SELECT user_id FROM url_like WHERE user_id = me() AND url = "http://myurl.com/item1.html"

Cpilkoさん、どうもありがとうございました!=)

于 2012-05-17T20:39:36.840 に答える
0

クエリを書き直して、別の方法で実行することもできます。URL がユーザーのいいね! に存在するかどうかを確認します。

これは私にとってはうまくいきます:

SELECT url, id, type, site FROM object_url WHERE id IN (SELECT object_id FROM like 
       WHERE user_id=me()) AND strpos(url, "myurl.com/item1") >= 0
于 2012-05-17T14:16:06.607 に答える