没有请求访问令牌,检查用户是否喜欢Facebook页面

时间:2013-10-03 15:38:33

标签: javascript facebook-graph-api facebook-like facebook-javascript-sdk

 window.fbAsyncInit = function() {
        FB.init({
          appId      : '********', // App ID
          channelUrl : document.location.protocol + '//connect.facebook.net/en_US/all.js', // Channel File
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true  // parse XFBML
        });


 var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id;
            FB.Data.query(fql_query).wait(function(rows) {
              if (rows.length == 1 && rows[0].uid == user_id) {
                console.log("LIKE");
                $('#container_like').show();
              } else {
                console.log("NO LIKEY");
                $('#container_notlike').show();
              }             }

我需要检查用户是否像Facebook页面一样,没有请求任何访问令牌或许可是可能的???

2 个答案:

答案 0 :(得分:0)

我认为如果我正确理解你,我认为这是可能的...最终你总是需要用户授权你的应用并获得一个身份验证令牌才能知道用户的身份。 FB未经他们的许可不会让你知道用户的uid

答案 1 :(得分:0)

是的,我可以通过php使用以下代码完成请求并获得用户的许可

        require 'src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
        $facebook = new Facebook( array(
            'appId' => '***************',
            'secret' => '**********************',
            'cookie' => true,
                ) );
        $signed_request = $facebook->getSignedRequest();
// Return you the Page like status
        $like_status = $signed_request[ "page" ][ "liked" ];

        if ( $like_status ) {?>
            <div class="facebook-data-content" id="facebook-data-content"> </div>

        <?php } else {
            ?>
            <div class="like-gate" id="like-gate"> </div>
        <?php } ?>

你可以用JavaScript做同样的事情   注意:在做任何事情之前,所有人都需要检查重定向网址是否正确,因为关于此问题的大多数问题

祝你好运:)