我正在使用Facebook SDK让用户登录我的网络应用程序。
已遵循并完成所有标准流程。但是,在检索将保存到用户记录的TABLE USERS
的访问令牌时,我有点困惑。
现在我在用户登录后有一个图形对象列表:
$session = $helper->getSessionFromRedirect();
$request = new FacebookRequest( $session, 'GET', '/me' );
$response = $request->execute();
$graphObject = $response->getGraphObject();
现在,无论如何我能得到:
$graphObject->getProperty('token');
$graphObject->getProperty('secret');
...为了保存到用户表?
答案 0 :(得分:2)
您要查找的方法是Facebook\Session类。
因此,您可以使用$session->getToken()
获取当前访问令牌,然后将其存储在您喜欢的位置。
请注意,虽然它们有时间限制,但是当您再次使用它时,您应该调用validate函数来检查它是否仍然有效。像
这样的东西 $session = new FacebookSession($token);
try {
$session->validate();
}catch (FacebookRequestException $ex) {
// Session not valid, Graph API returned an exception with the reason.
echo "FacebookRequestException: " . $ex->getMessage(). "<br />";
} catch (\Exception $ex) {
// Graph API returned info, but it may mismatch the current app or have expired.
echo "Validate Exception: " . $ex->getMessage(). "<br />";
}
答案 1 :(得分:1)
这是FacebookSession对象的第一类方法:
$session->getToken();