登录访问Facebook数据在我的服务器与FB PHP SDK和Cordova应用程序


Login to Access Facebook data on my Server with FB PHP SDK and Cordova App

我无法找出我正在创建的cordova应用程序的逻辑流程。这就是我想做的。

  1. 用户正在使用我正在创建的Cordova应用程序,他们登录到Facebook与我的插件(wizcorp Cordova插件)。登录过程中没有与我自己的服务器通信

  2. 登录后,我的服务器需要访问一些数据在我的web服务器上的数据库,我可能已经保存了关于这个用户。(就像他们通过应用程序向朋友发布的帖子一样)。

  3. 我需要在一些PHP代码中验证用户是否真的是这个fb用户而不是冒名顶替者,所以我想我需要在应用程序中使用返回给用户的访问令牌。

  4. 我可以轻松地将令牌发送到我的PHP代码,但我不知道如何使用PHP Facebook SDK来设置此令牌并获得经过验证的用户的Facebook ID。

这是我的PHP代码

    require_once("fb/autoload.php");
//Create the Facebook service
$facebook = new Facebook'Facebook ([
    'app_id' => '12345',
    'app_secret' => '67890',
    'default_graph_version' => 'v2.4'
    ]);
$facebook->setAccessToken($_REQUEST['access_token']);
if (($userId = $facebook->getUser())) {
    echo "userId=$userId<br/>";
}

我得到这个错误:调用未定义的方法Facebook'Facebook::setAccessToken()

    curl_setopt_array($curl, array(
 CURLOPT_URL => "https://graph.facebook.com/$fb_user_id?fields=id%2Cname&access_token=$access_token",
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_ENCODING => "",
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 30,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST => "GET",
 CURLOPT_HTTPHEADER => array(
   "cache-control: no-cache",
   "postman-token: 3602fbe6-2faf-9c7f-05b0-bcaea8548000"
 ),
));