申请
创建应用
- 点击创建应用, 按提示创建应用
- 设置-基本设置, 填写基本信息, 记录对应appId 和 秘钥
- 在产品中添加facebook登录
- OAuth 客户端授权设置, 跳转地址
- 应用审核-权限和功能: 开启获取email权限
代码
html
<a href="javascript:fbLogin()"> facebook </a>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js"></script>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxx',
cookie : true,
xfbml : true,
version : 'v15.0'
});
FB.AppEvents.logPageView();
};
function fbLogin() {
FB.login(function (response) {
if (response.authResponse) {
checkLoginState()
} else {
showPopup('error', 'User cancelled login or did not fully authorize.');
}
}, { scope: 'email, public_profile', return_scopes: true});
}
function checkLoginState() {
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
function statusChangeCallback(response) {
if (response.status === 'connected') {
FB.api('/me?fields=id,name,email', function(response) {
$.post('/facebookLogin', {userdata:response},function(data){
if(data.status == 200){
showPopup('success','Login Success!','1500');
$('.generalPop').on('hidden.bs.modal', function(){
window.location.reload();
});
}else{
showPopup('error', data.message);
}
});
});
} else if (response.status === 'not_authorized') {
showPopup('error', 'Not_authorized');
} else {
}
}
</script>
PHP
public function facebookLogin(Request $request)
{
$userData = $request->userdata;
if(!isset($userData['email'])){
return response()->json(['status' => 401, 'message' => 'We need your Email!']);
}
return response()->json(['status' => 200]);
}