web-dev-qa-db-ja.com

ドメインのすべてのページについてFacebookの「いいね」数を取得する

Facebookの「いいね」ボタンを自分のサイトの多くのページに統合しました。私のサイトで最も「いいね」されたページをリストに表示したいのですが、1回のリクエストでFacebookからそのデータを取得する方法がわかりません。これまでのところ、次のFQLクエリを使用して、個々のページの「いいね」数を取得できました。

SELECT share_count, like_count, comment_count, total_count
FROM link_stat
WHERE url="http://www.mysite.com/some-page"

ただし、サイトの各ページの数を一度に1つずつ取得することは、実際には現実的ではありません。多数のページがあることを除いて、新しいページが常に作成されています(新しいユーザープロファイル、新しいブログ、ブログ記事など)。これにより、サイトの完全な統計情報を取得するのは複雑なプロセスになり、FacebookのAPIを何千回も呼び出すことになります。 。

ドメインの各ページが1回のリクエストで「いいね」された回数をカウントする方法はありますか?それとも、上位10件の「いいね」ページだけか、それに似たものですか?

44
KOTJMF

実際に私はこのようにします:

$arrayOfPages = array('url1', 'url2', 'url3');

$listOfPages = implode(',', $arrayOfPages);

SELECT share_count, like_count, comment_count, total_count, url
FROM link_stat
WHERE url IN ($listOfPages)

これにより、偽のユーザーに対するFacebookのポリシーを破ることなく、URLを一意の識別子としてすべてのデータを取得できます。サイトのデータベースのクエリから$arrayOfPages変数を動的に作成できます。

22
John Macon

サリルの回答の続きとして、sharedcount.comが使用している主要なAPIの一部を以下に示します(完全なリストはこちら-- http://sharedcount.com/documentation.php

SharedcountのAPIを使用して一般的な概要を取得したり、APIを使用して自分で何かを記述したりできます。

7
Uri

1つのクエリですべてのページのFBのいいね!を取得することは困難ですが、サイトのすべてのページの個別の共有数を取得できます。共有数とは別に、サイトページが共有されている個々のソーシャルネットワークの数の内訳を取得することもできます。 http://sharedcount.com/?url=http%3A%2F%2Fwww.parasitech.net%2F にドメイン名を挿入し、適切な提案を提供します。 Facebook、Twitter、Google +、Diggs、Linkedin、Google Buzz、Delicious、StumbleUponの番号を取得できます。

5
Salil

1)fbで偽のユーザーを作成します。これは、ドメインからのページのみを好きになるか、URLをfbに保存して、後でFQLで取得できる可能性がある他の方法を使用します。

2)クエリ:

SELECT share_count, like_count, comment_count, total_count
    FROM link_stat WHERE url in (SELECT object_id FROM like WHERE user_id="fake_user_id")

3)countのように1つずつデクリメントすることを忘れないでください;)、ソートして表示します

2
UIBuilder

どうやら、FQLには「LIKE」はありません。それが私の最初の提案でした。

次のように "IN"演算子を使用できます。

SELECT share_count, like_count, comment_count, total_count
FROM link_stat
WHERE "http://www.mysite.com/" IN url
ORDER BY like_count
LIMIT 10;

2
Dave Lugg

たぶん、ページが表示されるたびに、各ページのいいねの数をクエリするだけで済みます。これは正確ではありませんが、最も人気のあるページがより頻繁に表示されることを覚えておいてください。

さらに、バッチプロセスを使用して、すべてのページのいいねの数、または少なくとも数時間ごとに最後に作成されたいいねの数をクエリできます。ほとんどの場合、正しい結果は得られませんが、ほとんどの場合、ユーザーは正しい結果を必要としませんが、十分に近似しています。

1
Javier

すべてのページのカウントが必要な場合は、Super Social Media Trackerがそれを提供できます。

http://apps.Microsoft.com/windows/en-US/app/super-social-media-tracker/a56c8971-42e2-4eb4-9b05-7e52233b4e1e

ただし、大規模なページの場合は低速です。

0
Remy