【问题标题】:Facebook PHP SDK Extracting Access TokenFacebook PHP SDK 提取访问令牌
【发布时间】:2013-05-09 19:27:09
【问题描述】:

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

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 方面我是一个完整的初学者,因此非常感谢任何帮助。

非常感谢!

【问题讨论】:

  • 用户访问令牌的有效期大约为 2 小时,调用不会总是给你一个新令牌,但如果它过期了你会得到一个新令牌。

标签: php facebook facebook-php-sdk


【解决方案1】:

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

获得 facebook api 实例后:

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

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

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

然后从中获取电子邮件:

$email = $user_profile['email'];

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 2012-05-17
    • 2014-10-08
    • 1970-01-01
    • 2013-01-03
    • 2011-09-19
    • 1970-01-01
    相关资源
    最近更新 更多