php - 从 Facebook PHP SDK 获取 ID

标签 php facebook facebook-graph-api facebook-php-sdk

我整夜都在思考如何通过 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/

相关文章:

c# - Facebook 图形 API "/userid/feed"返回空白

javascript - 如何使用PHP从复选框中获取值?

php - 从查询生成器 Laravel 中排除记录

javascript - HTML表单添加+按钮生成更多字段

ios - 使用 pod install 后出现 Swift 错误(clang : error: linker command failed with exit code 1 )

python - 如何使用 Python SDK 使用现有视频在 Facebook 中创建视频广告?

ios - 没有Facebook App不会显示FBWebDialogs presentFeedDialogModallyWithSession

php - Laravel Passport - 通过客户端 ID 获取客户端密码

python - 使用 Python Facebook SDK 读取页面消息

ruby-on-rails - SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B : certificate verify failed