【问题标题】:How to check user like the facebook Application or not?如何检查用户是否喜欢 facebook 应用程序?
【发布时间】:2012-04-09 13:41:07
【问题描述】:

我们如何检查用户是否喜欢 facebook 应用程序?

我正在尝试创建一个 Facebook 应用,其中有两个不同的页面,如果用户喜欢,则显示 page_1,否则显示 page_2。

【问题讨论】:

    标签: php facebook facebook-graph-api facebook-like facebook-page


    【解决方案1】:
    <?php 
    $user = $facebook->getUser(); 
    if ($user) { 
    
    try{ 
    $user_profile = $facebook->api('/me');
     $likeID = $facebook->api(array( 'method' => 'fql.query',
     'query' => 'SELECT url FROM url_like WHERE user_id = "'.$user_profile['id'].'" AND url="myurl/"'; )); 
    }
     catch(FacebookApiException $e) { }
     } 
    if(count($likeID)>0) echo "User likes this page"; 
    else echo "User doesn\'t like this page";
    
    ?>
    

    可靠和/或官方来源:

    1. http://www.zuberi.me/2011/how-to-check-if-user-liked-the-application-or-page.html
    2. http://www.chilipepperdesign.com/2011/02/15/reveal-fan-gate-like-gate-facebook-iframe-tab-tutorial-with-php
    3. How to check if a user likes my Facebook Page or URL using Facebook's API
    4. Facebook how to check if user has liked page and show content?
    5. Facebook Check if user "Liked" the page

    【讨论】:

    • getUser(); if ($user) { try{ $user_profile = $facebook->api('/me'); $likeID = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT url FROM url_like WHERE user_id = "'.$user_profile['id'].'" AND url ="myurl"' )); } catch(FacebookApiException $e) { } } if(count($likeID)>0) echo "用户喜欢这个页面"; else echo "用户不喜欢这个页面"; ?>
    • 你也可以更新我的答案。如果您觉得它应该对其他用户更好。如果对您有帮助,您也可以接受答案。
    【解决方案2】:

    解决问题的更好方法是:

    // to generate user access token after the user is logged in
    $USER_ACCESS_TOKEN = $facebook->getExtendedAccessToken();
    
    $isFan = curl("https://api.facebook.com/method/pages.isFan?format=json&access_token=" . $USER_ACCESS_TOKEN . "&page_id=" . $FACEBOOK_PAGE_ID);
    
            function curl($url) {
    
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
                $data = curl_exec($ch);
                curl_close($ch);
                return $data;
            }
    

    【讨论】:

      【解决方案3】:
      require 'facebook.php';
      
      $app_id = "your app id";
      $app_secret = "your app secret";
      $facebook = new Facebook(array(
          'appId' => $app_id,
          'secret' => $app_secret,
          'cookie' => true,
      ));
      
      $signed_request = $facebook->getSignedRequest();
      
      
      $like_status = $signed_request["app"]["liked"];
      
      
      if ($like_status == 1){
      echo 'User likes this page';
      }
      else{
      echo 'User doesn\'t like this page';
      }
      

      也许你应该尝试这样的事情,查看Facebook's PHP SDK reference page 了解确切的方法。

      【讨论】:

      • &lt;?php $user = $facebook-&gt;getUser(); if ($user) { try{ $user_profile = $facebook-&gt;api('/me'); $likeID = $facebook-&gt;api(array( 'method' =&gt; 'fql.query', 'query' =&gt; 'SELECT url FROM url_like WHERE user_id = "'.$user_profile['id'].'" AND url="http://myurl/"' )); }catch(FacebookApiException $e){ } } if(count($likeID)&gt;0) echo "User likes this page"; else echo "User doesn\'t like this page"; ?&gt;以上方法做到了
      • 嗨弗兰克,我不知道 php。你能帮我把它转换成 javascript 或 asp.net 吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2011-11-15
      相关资源
      最近更新 更多