web-dev-qa-db-ja.com

特定のURLのFacebook *シェア*の数を取得します

グラフAPIにいくつかの不一致が見つかり、誰かがそれらを回避できたかどうか疑問に思いました。

https://graph.facebook.com/?id=http://www.imdb.com/title/tt0117500/ によって提供されるすべてのオープングラフ情報とともに「いいね」番号を出力しますそのfb:app_idに関連付けられているimdb。 https://graph.facebook.com/?id=http://www.google.com ただし、googleはfb:app_idまたはfbを提供しないため、「シェア」番号を出力します:admins。

私の問題は、最初のURLに「共有」番号が必要なことです。これは、その ボタンのように (いいね+コメントなど)で公開されている番号に対応しているためです。

この「共有」番号を確実に取得する方法はありますか?

21
Cay

このAPIは使用できなくなりました。以下の答えは無効になりました。


APIへのGETリクエストだけでページの統計を取得できます(たとえば http://techcrunch.com )。このGETリクエストhttp://api.facebook.com/restserver.php?method=links.getStats&urls=[YOUR_URL]を配置して、統計を取得するだけです。

のように http://api.facebook.com/restserver.php?method=links.getStats&urls=http://techcrunch.com/

<links_getStats_response xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd" list="true">
    <link_stat>
        <url>http://techcrunch.com/</url>
        <normalized_url>http://www.techcrunch.com/</normalized_url>
        <share_count>6244</share_count>
        <like_count>1513</like_count>
        <comment_count>1391</comment_count>
        <total_count>9148</total_count>
        <click_count>4007</click_count>
        <comments_fbid>433841427570</comments_fbid>
        <commentsbox_count>4</commentsbox_count>
    </link_stat>
</links_getStats_response>

お役に立てれば。


また、

その応答をJSONとして希望する場合は、&format=jsonをリクエストURLに追加するだけ–デクスター
(コメントから。Dexterに感謝します!)

57
Nishant

テーブル link_stat でFacebookのFQLを使用する必要があります。これに似たものを使用してください

SELECT
url, normalized_url,
share_count, like_count, comment_count, total_count,
commentsbox_count, comments_fbid, click_count
FROM link_stat
WHERE url="http://www.imdb.com/title/tt0117500/"

これはそのクエリの結果です(XML形式では、もちろんJSONで取得できます)。

<?xml version="1.0" encoding="UTF-8"?>
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">
  <link_stat>
    <url>http://www.imdb.com/title/tt0117500/</url>
    <normalized_url>http://www.imdb.com/title/tt0117500/</normalized_url>
    <share_count>6233</share_count>
    <like_count>9500</like_count>
    <comment_count>2179</comment_count>
    <total_count>17912</total_count>
    <commentsbox_count>6</commentsbox_count>
    <comments_fbid>380728101301</comments_fbid>
    <click_count>164</click_count>
  </link_stat>
</fql_query_response>

Total_count(17912)は、探している数です。

6
mrpaint

Facebookの以前のAPIオプションは使用できなくなりました。これをプログラムで実行したい場合、Facebookは現在(私が知る限り)そうする方法を提供していません。

Facebookのようなボタン の例のソースを削り取る可能性がありますが、特に以前のアクションの履歴を考えると、それは壊れやすいようです。

私が見つけたサードパーティのオプションの1つはSharedCountで、これには APIが利用可能 があります。無料のアカウントを登録する必要がありますが、 this endpoint へのGETリクエストを行うと、次のサンプルレスポンスが返されます。

{"StumbleUpon":1,"Pinterest":9,"LinkedIn":3744,"Facebook":{"total_count":
168,"comment_count":53,"reaction_count":14,"share_count":
101, "comment_plugin_count":0},"GooglePlusOne":189}

そこから、Facebookを解析できますtotal_count値。これは、埋め込まれたFacebook共有ボタンの横に表示されるものに対応する必要があります。

注目すべきは、APIから返されるSharedCount値がボタンの例のカウントと一致するように、サンプルURLから末尾のスラッシュを削除する必要があったため、ユースケースで正確に機能することを確認することをお勧めします。 。

0
Dave Powers