Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
获取用户';s使用facebook php sdk登录后的facebook信息_Php_Facebook Graph Api_Facebook Javascript Sdk_Facebook Php Sdk - Fatal编程技术网

获取用户';s使用facebook php sdk登录后的facebook信息

获取用户';s使用facebook php sdk登录后的facebook信息,php,facebook-graph-api,facebook-javascript-sdk,facebook-php-sdk,Php,Facebook Graph Api,Facebook Javascript Sdk,Facebook Php Sdk,我正在使用Facebook javascript sdk和php sdk将用户登录到我的web应用程序。使用javascript,我可以登录/退出,并且可以获取登录用户的公共facebook详细信息 但是,当使用php时,我无法获得用户的facebook详细信息。 为了向您提供应用程序的一些信息,当我导航到包含表单的特定页面时,代码会检查他们是否已登录。如果没有,则会给他们一个LoginUrl链接。登录后,我有$user_id,因此现在用户可以使用该表单,但我无法在提交表单时将他们的facebo

我正在使用Facebook javascript sdk和php sdk将用户登录到我的web应用程序。使用javascript,我可以登录/退出,并且可以获取登录用户的公共facebook详细信息

但是,当使用php时,我无法获得用户的facebook详细信息。 为了向您提供应用程序的一些信息,当我导航到包含表单的特定页面时,代码会检查他们是否已登录。如果没有,则会给他们一个LoginUrl链接。登录后,我有$user_id,因此现在用户可以使用该表单,但我无法在提交表单时将他们的facebook详细信息保存在MySQL数据库中。有人对我该做什么有意见吗?我肯定有$user\u id,因为只有我有$user\u id时才会显示表单

我的代码基于


//包含表单的页面
启程

/*在这种情况下,您需要用户访问令牌,然后将该令牌作为参数传递到Facebook/MeAPI中,然后您可以获得Facebook用户登录信息。您需要向作用域中的用户传递所需的权限范围。要检索用户访问令牌,您可以这样使用*/

$loginUrl=$facebook->getLoginUrl(数组('scope'=>'manage_pages','redirect_uri'=>'you url')

/*创建oauth url并传递范围,以允许用户到Facebook宣誓页面获取权限,从Facebook获取访问令牌重定向它将在请求中提供给您*/

$access_token=$facebook->getAccessToken()

$param_token=array('access_token'=>$access_token)

$user_profile=$facebook->api('/me')//替换为该行


$user_profile=$facebook->api('/me','GET',$param_-token)

/*您需要用户访问令牌,然后将该令牌作为参数传递到Facebook/me API中,然后您可以获取Facebook用户登录信息。您需要向作用域中的用户传递所需的权限范围。要检索用户访问令牌,您可以这样使用*/

$loginUrl=$facebook->getLoginUrl(数组('scope'=>'manage_pages','redirect_uri'=>'you url')

/*创建oauth url并传递范围,以允许用户到Facebook宣誓页面获取权限,从Facebook获取访问令牌重定向它将在请求中提供给您*/

$access_token=$facebook->getAccessToken()

$param_token=array('access_token'=>$access_token)

$user_profile=$facebook->api('/me')//替换为该行


$user_profile=$facebook->api('/me','GET',$param_-token)

您不能使用用户详细信息的Id调用API吗?请参阅:首先我使用getUser()检查用户是否已登录,然后使用$user_profile=$facebook->API('/me');我应该得到用户的详细信息。REST正在被弃用。有什么问题吗?我根本不了解用户的详细信息。在我登录并显示表单后,url包含更多数据,但不确定如何处理这些数据。我尝试了我提供的链接中的示例,但我遇到了相同的问题。您不能使用Id调用API以获取用户详细信息吗?请参阅:首先,我使用getUser()检查用户是否已登录,然后使用$user_profile=$facebook->API('/me');我应该得到用户的详细信息。REST正在被弃用。有什么问题吗?我根本不了解用户的详细信息。在我登录并显示表单后,url包含更多数据,但不确定如何处理这些数据。我尝试了我提供的链接的例子,我有同样的问题。
<?php
require 'facebook.php';
//create application instance
$config = array(
'appId' => '**************',
'secret' => '****************************',
'cookie' => true);
$facebook = new Facebook($config);
$user_id = $facebook->getUser(); 
?>

//Page containing form
<div data-role="page" id="postAJourney" data-add-back-btn="true" data-back-btn-text="back" data-rel="back" data-direction="reverse" data-transition="flip" data-theme="b" >
    <div data-role="header"  data-position="fixed">
       <h1>Post A Journey</h1>
    </div>

    <div data-role="content">
       <?php if ($user_id): ?>
       <form action="add_journey.php" method="post" id="postAJourneyForm">
       <?php
       try
       {
           $access_token = $facebook->getAccessToken();
       $param_token = array('access_token' => $access_token); 
       //Proceed knowing you have a logged in user who's authenticated.
       $user_profile = $facebook->api('/me','GET',$param_token);
       echo "Name: " . $user_profile['name'];
       // store session data
       $_SESSION['fb_id'] = $user_profile['id'];
       $_SESSION['fb_name'] = $user_profile['name'];
       $_SESSION['fb_first_name'] = $user_profile['first_name'];
       $_SESSION['fb_last_name'] = $user_profile['last_name'];
       $_SESSION['fbImg'] = "https://graph.facebook.com/".$user_profile['id']."/picture";
    $_SESSION['fbLink'] = "https://www.facebook.com/".$user_profile['name'];
       }
       catch(FacebookApiException $e)
       {
       // If the user is logged out, you can have a 
       // user ID even though the access token is invalid.
       // In this case, we'll get an exception, so we'll
       // just ask the user to login again here.
       $login_url = $facebook->getLoginUrl(); 
       error_log($e->getType());
       error_log($e->getMessage());
       }
       ?>

       //jQuery Mobile Form would be here

 <?php else: ?>
 <?php // No user, print a link for the user to login
$login_url = $facebook->getLoginUrl(array(
'scope' => 'email',
'redirect_uri' => "http://localhost/share/#postAJourney"
));
 ?>
 <div>
     Login using OAuth 2.0 handled by the PHP SDK:
     <a href="<?php echo $login_url; ?>">Login with Facebook</a>
 </div>
 <?php endif ?>