facebook app获取userID绕过Oauth2.0

时间:2012-05-24 13:17:40

标签: php facebook facebook-like facebook-fql

我想创建一个与此页面类似的Facebook应用

https://www.facebook.com/carlorinosg/app_150206515038121

用户点击了,并且页面检查用户是否使用正确的用户ID点击“喜欢”,它将允许用户访问以下内容。

如果我没有弄错的话,所有fb应用程序都要求用户在用户与应用程序交互之前浏览权限页面。

然而,这个应用程序似乎允许用户点击它,它通过$ facebook-> getUser()获取用户ID; (如果我没有记错的话)没有通过许可页面 ..

我想知道如何实现与此Facebook应用程序相同的设计?

为什么UID总是返回null。 ?

下面的代码
            <?php
            require_once("facebook.php");
            $config = array();
            $config['appId'] = 'xxx';
            $config['secret'] = 'xxxx';
            $config['fileUpload'] = false; // optional

            $facebook = new Facebook($config);

                $fql = 'SELECT  uid FROM user where uid = me()';
                        $ret_obj = $facebook->api(array(
                            'method' => 'fql.query',
                            'query' => $fql,
                                ));

                        var_dump($ret_obj );
            ?>

1 个答案:

答案 0 :(得分:1)

1)如果您需要用户ID或用户信息或来自Facebook的任何类型的数据,那么您需要让用户授权该应用。

2)如果您不关心查看应用程序的用户是谁,但您想查看用户是否喜欢您的页面,那么您可以使用此代码并在用户喜欢该页面时显示内容。

<?php
 require 'facebook/src/facebook.php';
 $facebook = new Facebook(array(
  'appId'  => $CONF['FB_APP_ID'],
  'secret' => $CONF['FB_APP_SECRET'],
  'cookie' => false,
 ));

 // Get User ID
 $user = $facebook->getUser();
 $signed_request = $facebook->getSignedRequest();
 $like_status = $signed_request["page"]["liked"];
 if($like_status == 1){ 
 echo 'You liked the page. so you are able to see this';
 }else{  echo 'Please like the page to access'; 
 } ?>

3)如果您不关心谁是查看应用程序的用户并且您不希望用户喜欢,请发送html页面。