Facebook graph api 不确定会话是否使用Facebook PHP SDK启动

Facebook graph api 不确定会话是否使用Facebook PHP SDK启动,facebook-graph-api,facebook-php-sdk,Facebook Graph Api,Facebook Php Sdk,我正在尝试使用Facebook的PHP SDK。调用Facebook以检索用户信息的代码保存在名为fbcall.php的文件中。通过另一个名为index.php的页面的href链接调用fbcall.php页面 整个代码(index.php): 我感觉我的会话没有启动,但我确定如何验证这一点。如果它没有启动,那么我不确定我做错了什么,因为我在这里遵循了Facebook的指导方针(或者至少我认为我是这样) 整个代码(fbcall.php): 一旦用户授予您的权限,他/她将被重定向到index.php

我正在尝试使用Facebook的PHP SDK。调用Facebook以检索用户信息的代码保存在名为fbcall.php的文件中。通过另一个名为index.php的页面的href链接调用fbcall.php页面

整个代码(index.php):

我感觉我的会话没有启动,但我确定如何验证这一点。如果它没有启动,那么我不确定我做错了什么,因为我在这里遵循了Facebook的指导方针(或者至少我认为我是这样)

整个代码(fbcall.php):


一旦用户授予您的权限,他/她将被重定向到
index.php
(因为您的
重定向uri

因此有两种解决方案:
-将您的
重定向\u uri
更改为
fbcall.php


-将所有
fbcall.php
逻辑移动到
index.php
,并更改
标题(“位置:.$loginUrl”)通过
echo''

谢谢您的回答。如果我将其更改为第一个可能的解决方案,我会陷入无限重定向,浏览器最终会抛出一个错误。至于第二个,它首先让我自动进入Facebook的登录页面,然后执行与第一个解决方案相同的操作(无限重定向)。您可以在每个
catch
中添加
var_dump()
?在每个catch中尝试vardump()。没有输出。还注意到,当我硬编码用户令牌时,比如$session=newfacebooksession(“用户令牌”);会话启动后,我得到一个appdeveloper名称的输出是,什么都没有。所以我知道一个事实,会话没有启动。可能从Facebook获取空值。我只是不知道为什么。
<?php
echo "<a href=\"fbcall.php\">Login Here</a>";
?>
echo "Name: " . $user_profile->getName();
<?php
session_start();
// Make sure to load the Facebook SDK for PHP via composer or manually

require_once 'autoload.php';

//require 'functions.php';  
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\Entities\AccessToken;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\HttpClients\FacebookHttpable;


// add other classes you plan to use, e.g.:
// use Facebook\FacebookRequest;
// use Facebook\GraphUser;
// use Facebook\FacebookRequestException;
FacebookSession::setDefaultApplication('AM USING MY APP ID HERE','AM USING MY SECRET KEY HERE');


$helper = new FacebookRedirectLoginHelper('http://localhost/facebook/index.php');
$params = array('email','public_profile', 'user_status', 'user_friends');
$loginUrl = $helper->getLoginUrl($params);

try {
  $session = $helper->getSessionFromRedirect();
  // var_dump($session);
} catch(FacebookRequestException $ex) {
} catch(\Exception $ex) {
}
if (isset($session)) {
  var_dump($session);
}
else
{
  $loginUrl = $helper->getLoginUrl();
  header("location:".$loginUrl);
  exit;
}


$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
$graphObject = $response->getGraphObject();

if(isset($session)) {
  try {
    $user_profile = (new FacebookRequest(
      $session, 'GET', '/me'
    ))->execute()->getGraphObject(GraphUser::className());
    echo "Name: " . $user_profile->getName();
  } catch(FacebookRequestException $e) {
    echo "Exception occured, code: " . $e->getCode();
    echo " with message: " . $e->getMessage();
  }   
}
?>