我一直在试图弄清楚如何通过Facebooks API授权用户,只是为了获取用户ID。 我已经尝试了几乎所有来自S / O的提示和想法,5页的“Google指南”和Facebook开发人员指南,但似乎没有什么对我有用!如果有人会如此善良,并逐步指导如何使其发挥作用!
Open Graph是必须的吗?我试过它,也没有工作也没有工作。我已经有了我的应用程序(可能没有正确的设置吗?)和PHP SDK
($uid = $facebook->getUser();
等没有给我任何帮助。)
提前致谢!
这个代码例如不起作用,我在S / O上找到它并且他说它对他来说是完美的工作!
<?php
require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => '########',
'secret' => '##########################',
'cookie' => true,
));
$req_perms = "publish_stream,offline_access,user_status,email,read_stream";
$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(array('canvas'=> 1,'fbconnect' => 0,'req_perms' => $req_perms));
$user_info = null;
if (!$session)
{ echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";exit;}
else{
try { $user_info = $facebook->api('/me'); }
catch (FacebookApiException $e)
{ echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; exit;}
}
?>
<!doctype html>
<html>
<head>
</head>
<body>
<?php
$user_name=$user_info['name'];
echo "Hi $user_name ! Your Facebook ID is: ".$user_info['id']."<br/>";
echo "Hi $user_name ! Your E-mail Address is: ".$user_info['email']."<br/>";
echo "Thanks for accepting our application.";
//print_r($user_info);
?>
</body>
</html>
编辑:感谢所有快速反应,我终于开始工作了!我一直在正确的轨道上......
第1步:建立这样的链接
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL
使用facebook app授权用户,这是第2步所需的。
第2步:实施此代码段。
require_once('facebook.php');
$fb_app_id = "APP_ID";
$fb_secret = "APP_SECRET";
$fb_app_url = "APP_URL";
$facebook = new Facebook(array(
'appId' => $fb_app_id,
'secret' => $fb_secret,
'cookie' => true,
));
$facebook_login_url = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 0,
'scope' => 'publish_stream,user_photos',
'redirect_uri' => $fb_app_url
));
$facebook_user_id = $facebook->getUser();
谢谢 @KevinCogill 和 @JuicyScripter 获取提示!
答案 0 :(得分:3)
Facebook已经为你做过:
您必须阅读Authentication并查看examples
更新(有关更新的代码示例的说明):
您使用的getSession
在最新版本的Facebook PHP-SDK中并不存在,req_perms
现在称为scope
。您是否阅读过其他地方发布的Facebook文档或教程? Facebook频繁更改内容大多数在其他来源中找到的教程都会过时。最好从官方来源获取信息(即使它不是最好的质量)
答案 1 :(得分:2)
require_once('facebook/facebook.php');
$facebook = new Facebook(array(
'appId' => $fb_app_id,
'secret' => $fb_secret,
'cookie' => true,
));
$facebook_login_url = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 0,
'scope' => 'publish_stream,user_photos',
'redirect_uri' => $fb_app_url
));
$facebook_user_id = $facebook->getUser();