在PHP 3.0 SDK中,没有getSession()或任何来自Facebook api外部的会话处理.根据这篇博客文章和这个错误报告,几天前facebook的开发者也以某种方式更新了JavaScript sdk .
在过去的几天里,托管的JS SDK引入了一个变化,它破坏了它与当前PHP SDK(2.x和3.x)之间的所有可比性.在其网站上同时使用JS和PHP SDK的开发人员可能会看到服务器端API失败.
但是,我不知道这是否真的会影响我的问题.就像在这个问题的答案中一样,我正在使用PHP检索OAuth对话框的访问令牌,并在会话中保存新的访问令牌.
以下代码显示了我如何处理此会话.$_REQUEST['session']是OAuth对话框响应的内容.
if(isset($_REQUEST['session'])) {
$response = json_decode(stripslashes($_REQUEST['session']), true);
if(isset($response['access_token'])) {
$this->api->setAccessToken($response['access_token']);
$_SESSION['access_token'] = $this->api->getAccessToken();
}
}
elseif(isset($_SESSION['access_token']) && ! isset($_REQUEST['signed_request']))
$this->api->setAccessToken($_SESSION['access_token']);
elseif(isset($_REQUEST['signed_request'])) {
Session::invalidate('fbuser');
$_SESSION['access_token'] = '';
}
Run Code Online (Sandbox Code Playgroud)
以下是我处理用户数据的方法:
try {
$this->user = Session::getVar('fbuser');
if ($this->user === false || is_null($this->user)) {
$facebookUser = $this->api->api('me?fields=id,name,first_name,last_name');
$this->user = new FBUserModel(array('fbId' => $facebookUser['fbId'], ...));
Session::setVar('fbuser', $this->user);
}
}
Run Code Online (Sandbox Code Playgroud)
测试时一切都很好看.仅在发生错误时:第一次设置权限后.现在,由于应用程序在线,似乎每个第二个用户平均发生错误 …
我使用此链接作为我的起始文件制作了项目.
https://github.com/facebookincubator/create-react-app
但在我试图制作Facebook登录按钮后,跟随他们的官方文档.
componentDidMount(){
console.log('login mount');
window.fbAsyncInit = function() {
FB.init({
appId : '320866754951228',
xfbml : true,
version : 'v2.6'
});
FB.getLoginStatus(function(response) {
//this.statusChangeCallback(response);
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}
Run Code Online (Sandbox Code Playgroud)
所以我在刷新浏览器时遇到了这个错误.
Failed to compile.
Error in ./src/components/user_profile/LoginForm.js
/Sites/full_stack_production/xxxxx
70:13 error 'FB' is not defined no-undef
76:13 error 'FB' is not defined no-undef
? 2 problems (2 errors, 0 …Run Code Online (Sandbox Code Playgroud)