我整夜都在思考如何通过 Facebook 的 API 授权用户,只是为了获取他们的用户 ID。 我已经尝试了 S/O、5 页的“Google 指南”和 Facebook 开发人员指南中的几乎所有技巧和想法,但似乎没有什么对我有用!如果有人愿意并提供一步一步的指导如何让它发挥作用!
为此必须使用开放图谱吗?我也尝试过,无论有没有它都不起作用。我已经有了我的应用程序(也许那里的设置不正确?)和 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
这会授权用户使用步骤 2 所需的 Facebook 应用程序。
第 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提供的提示!
最佳答案
Facebook 已经为您做到了:
您必须阅读Authentication并参见examples
更新(更新代码示例的注释):
您使用的 getSession
在最新版本的 Facebook PHP-SDK 中并不存在,而 req_perms
现在称为 scope
。您是否阅读过其他地方发布的 Facebook 文档或教程? Facebook 经常更改内容,您在其他来源中找到的大多数教程都会很快过时。最好从官方来源获取信息(即使不是最好的质量)
关于php - 从 Facebook PHP SDK 获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718401/