Facebook PHP SDK提取访问令牌

时间:2013-05-09 19:27:10

标签: php facebook facebook-php-sdk

每次运行此脚本时,它都会为我提供不同的访问令牌。我认为访问令牌对于用户来说是独一无二的。另外,为什么这个脚本如此不可靠,一半时间失败。

My Facebook Access Token Page

以下是代码:

<?php
require 'lib/facebook.php';
require_once('C:\inetpub\storeboard.com\linkedin\extract_data.php');

$facebook = new Facebook(array(
  'appId'  => FACEBOOK_APPID,
  'secret' => FACEBOOK_APP_SECRET
));

$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
    $user = null;
  }
}

$access_token = $facebook->getAccessToken();
if (isset($access_token)) {
   echo $access_token;
    //header( 'Location: http://www.'.APP_ROOT_DOMAIN.'/facebook/save_token.asp?nToken='.$access_token);
}

?>

我是否删除了原始代码所需的代码:http://developers.facebook.com/blog/post/534/ 或者我错过了什么。

require_once('C:\inetpub\storeboard.com\linkedin\extract_data.php');

这行代码只是从数据库中提取APPID和APPSECRET。

对于PHP来说,我是一个完全的初学者,因此非常感谢任何帮助。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您无需使用令牌即可进行简单身份验证:

获得facebook api实例后:

$facebook = new Facebook(array(
  'appId'  => FACEBOOK_APPID,
  'secret' => FACEBOOK_APP_SECRET
));

如果您使用我的API - 获取用户个人资料:

$user_profile = $facebook->api('/me');

然后从中获取电子邮件:

$email = $user_profile['email'];

此时,您检查电子邮件是否在您的数据库中有效 - 如果是,则启动用户会话,您就可以开始使用了。