Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用FB PHP SDK和Cordova应用程序登录以访问我的服务器上的Facebook数据_Php_Facebook_Cordova_Facebook Graph Api_Facebook Php Sdk - Fatal编程技术网

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

使用FB PHP SDK和Cordova应用程序登录以访问我的服务器上的Facebook数据,php,facebook,cordova,facebook-graph-api,facebook-php-sdk,Php,Facebook,Cordova,Facebook Graph Api,Facebook Php Sdk,我无法理解我正在创建的cordova应用程序的逻辑流程。这是我想做的 用户正在使用我正在创建的Cordova应用程序,他们使用我的插件(wizcorp Cordova插件)登录Facebook。登录过程中没有任何内容与我自己的服务器通信 登录后,我的服务器需要访问我的web服务器上的数据库中的一些数据,该数据库可能是我以前保存的有关该用户的数据。(就像他们通过应用程序向朋友发的帖子一样) 我需要在一些PHP代码中验证用户是否真的是这个fb用户,而不是冒名顶替者,所以我想我需要使用应用程序中返回给

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

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

  • 登录后,我的服务器需要访问我的web服务器上的数据库中的一些数据,该数据库可能是我以前保存的有关该用户的数据。(就像他们通过应用程序向朋友发的帖子一样)

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

  • 我可以很容易地将令牌发送到我的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/>";
    }
    
    require_once(“fb/autoload.php”);
    //创建Facebook服务
    $facebook=new facebook\facebook([
    “应用程序id”=>“12345”,
    “app_secret”=>“67890”,
    “默认图形版本”=>“v2.4”
    ]);
    $facebook->setAccessToken($_请求['access_token']);
    如果($userId=$facebook->getUser()){
    echo“userId=$userId
    ”; }

    我遇到了这个错误:调用未定义的方法Facebook\Facebook::setAccessToken()

    对于任何感兴趣的人,我已经通过使用curl调用graph API并在请求中传递访问令牌解决了这个问题。下面的狙击手。
        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"
     ),
    ));