简体   繁体   English

使用Facebook PHP SDK 4获取用户ID

[英]Get user ID using Facebook PHP SDK 4

Following this discussion i can't figure it out how to getUserId from session or how to create session from a signed request in new SDK 4 for PHP? 讨论之后,我无法弄清楚如何从会话中获取UserId或如何从PHP新SDK 4中的已签名请求中创建会话? I'm trying to migrate my apps from old SDK to new one and my code doesn't work well. 我正在尝试将我的应用程序从旧的SDK迁移到新的SDK,但是我的代码无法正常运行。 I'm trying to get the user ID on page tab where i'm an admin. 我正在尝试在我是管理员的页面选项卡上获取用户ID。 I've tried to getSession from FacebookPageTabHelper with no luck. 我试图从FacebookPageTabHelper获取getSession,但是没有运气。

My php code: 我的PHP代码:

session_start();
require_once '../api/facebook/autoload.php';

use Facebook\FacebookSession;
use Facebook\FacebookPageTabHelper;

FacebookSession::setDefaultApplication(APP_ID, APP_SECRET);
$pageHelper = new FacebookPageTabHelper();

$page = $pageHelper->getPageId();
$admin = $pageHelper->isAdmin();
$fan = $pageHelper->isLiked();
$appdata = $pageHelper->getSignedRequest()->payload['app_data'];
$session = $pageHelper->getSession();
$user = $session->getUserId(); // always empty

Facebook API doesn't provide you with this information anymore (if you use the user access token). Facebook API不再为您提供此信息(如果您使用用户访问令牌)。 You should get the ID of the user by looking at his posts or his comments, and even by this way you need to guess that he is a public user otherwise it will not work. 您应该通过查看用户的帖子或评论来获取该用户的ID,即使通过这种方式,也需要猜测该用户是公共用户,否则将无法使用。

If you can login with the app token it should work but it's not easy to get confirmation for your application by Facebook. 如果您可以使用应用令牌登录,则应该可以,但是要通过Facebook确认您的应用并不容易。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM