每次运行此脚本时,它都会为我提供不同的访问令牌。我认为访问令牌对于用户来说是独一无二的。另外,为什么这个脚本如此不可靠,一半时间失败。
以下是代码:
<?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来说,我是一个完全的初学者,因此非常感谢任何帮助。
非常感谢!
答案 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'];
此时,您检查电子邮件是否在您的数据库中有效 - 如果是,则启动用户会话,您就可以开始使用了。