0

私は現在、ファンだけがアクセスできる Facebook アプリを開発しようとしています。そのため、ゲームにリンクしたファン ページをユーザーが気に入ったかどうかを確認するために、次のコードを使用しています。

<?php
$our_page_id = 'page_id';
$user_is_fan = false;
$likes = $facebook->api( '/me/likes?fields=id' );
foreach( $likes['data'] as $page ) {
    if( $page['id'] === $our_page_id ) {
        $user_is_fan = true;
                break;
    }
}

echo "likes:" . $likes;
echo "fan:".$user_is_fan;?>

そして、これはドキュメントを通じて生成した私のようなボタンです:

<div id="fb-root"></div>
    <script>(function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=14XXXX";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    </script>
</div>
<div class="fb-like" data-href="http://www.facebook.com/pages/xx/xx?fref=ts" data-send="false" data-width="450" data-show-faces="true"></div>

現在、無効な OAuth トークンに関するエラーが発生していますが、Facebook のいいね! をチェックする部分を削除すると、問題なく動作します。また、いいねボタンがクリックされたときにイベントをチェックしようとする FB.Event.subscribe('edge.create') 関数を試しましたが、アラートは表示されませんでした。

以前は、これは魅力的に機能していましたが、今では、いいねボタンをどれだけクリックしても、$user_is_fan は false を返します。ここで何か間違ったことをしましたか?それとも、これを間違って実装していますか?

Facebookでいいねをチェックする別の効果的な方法はありますか? 助けてください。注: Facebook PHP SDK を使用しています。

4

2 に答える 2

0

誰かがあなたのページを気に入ったかどうかに基づいて、アプリまたはアプリ内のコンテンツをゲートすることは、Facebook のポリシーに違反しています。

アプリまたはアプリのuser_likesコンテンツをゲートする目的で許可が付与されることはありません。

さらに、FQL は非推奨になり、新しいアプリには使用できなくなりました。

こちらの発表をご覧ください: https://developers.facebook.com/blog/post/2014/08/07/Graph-API-v2.1/

于 2014-08-19T16:00:41.510 に答える