2

每次我运行这个脚本时,它都会给我一个不同的访问令牌。我认为访问令牌对用户来说是唯一的。还有为什么这个脚本如此不可靠,一半的时间都失败了。

我的 Facebook 访问令牌页面

这是代码:

<?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 时,我是一个完整的初学者,所以任何帮助将不胜感激。

非常感谢!

4

1 回答 1

0

您无需使用令牌即可获得简单的身份验证:

获得 facebook api 实例后:

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

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

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

然后从中获取电子邮件:

$email = $user_profile['email'];

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

于 2013-06-12T21:50:34.247 回答