一、配置facebook应用

1、创建应用 https://developers.facebook.com/

2、进入应用,添加产品:Facebook登录
点击设置-》基本 获取编号秘钥

记录facebook登录的设置

APP登陆

/*** app端授权,php登陆* composer require facebook/graph-sdk* @Author wzb* @Date 2022/4/23 12:05*/public function facebook(){$access_token = $this->request->param('access_token', '', 'trim');if (!$access_token) {exit('服务器错误');}$fb = new Facebook(['app_id' => '你的应用编号','app_secret' => '你的秘钥','default_graph_version' => 'v2.10',]);$facebook_user = [];$avatar_url = '';try {$response = $fb->get('/me',$access_token);$facebook_user = $response->getDecodedBody();if (!isset($facebook_user['id'])) {exit('获取Facebook信息失败');}//获取用户头像$response = $fb->get("/{$facebook_user['id']}/picture?type=large&redirect=false",$access_token);$facebook_user_avatar = $response->getDecodedBody();if (isset($facebook_user_avatar['data']['url'])) {$avatar_url = $facebook_user_avatar['data']['url']; // 获取头像}} catch (\Exception $e) {exit('系统繁忙,请稍后再试');}$fbUid = $facebook_user['id'] ?? ''; // fb_uid$nickname = $facebook_user['name']; // 呢称//2.拿到用户信息进行用户登录or用户创建流程}

Web 端登陆流程

php 登陆流程

1、进入Facebook登录-》设置 来设置允许的回调地址
2、下载SDK:https://github.com/facebookarchive/php-graph-sdk

  /*** facebook登陆* 下载SDK:https://github.com/facebookarchive/php-graph-sdk* @Author wzb* @Date 2022/4/23 11:53*/function facebook_login(){session_start();$fb = new \Facebook\Facebook(['app_id' => '你的应用编号','app_secret' => '你的秘钥','default_graph_version' => 'v3.2',]);$helper = $fb->getRedirectLoginHelper();$permissions = ['email']; // Optional permissions$redirect_uri = 'https://m.remixg.com/Login/face_login'; // 授权地址必须要填写跟这个一样$loginUrl = $helper->getLoginUrl($redirect_uri, $permissions);echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>';}/*** facebook登陆回调* @Author wzb* @Date 2022/4/23 11:53*/function face_login(){session_start();$fb = new \Facebook\Facebook(['app_id' => '你的应用编号','app_secret' => '你的秘钥','default_graph_version' => 'v3.2',]);$helper = $fb->getRedirectLoginHelper();try {$accessToken = $helper->getAccessToken();} catch (Facebook\Exceptions\FacebookResponseException $e) {echo 'Graph returned an error: ' . $e->getMessage();exit;} catch (Facebook\Exceptions\FacebookSDKException $e) {// When validation fails or other local issuesecho 'Facebook SDK returned an error: ' . $e->getMessage();exit;}if (!isset($accessToken)) {if ($helper->getError()) {header('HTTP/1.0 401 Unauthorized');echo "Error: " . $helper->getError() . "\n";echo "Error Code: " . $helper->getErrorCode() . "\n";echo "Error Reason: " . $helper->getErrorReason() . "\n";echo "Error Description: " . $helper->getErrorDescription() . "\n";} else {header('HTTP/1.0 400 Bad Request');echo 'Bad request';}exit;}// 获取 accessToken$oAuth2Client = $fb->getOAuth2Client();// 获取 userid$tokenMetadata = $oAuth2Client->debugToken($accessToken);// 获取用户信息$userinfo = $fb->get($tokenMetadata->getUserId() . '?fields=id,name,first_name,picture', $accessToken->getValue());$userinfo = json_decode($userinfo->getBody(), true);// 执行注册}

js 登陆流程

/*** facebook js login*/
function login_facebook(){FB.login(function(response) {if (response.status === 'connected') {FB.api('/me', {fields: 'id,name,first_name,picture.width(120).height(120)'},function(res) {var facebook_login_data = {id:res.id,name:res.name,picture:res.picture.data.url};// 传给后台处理注册登录AjaxJson(facebook_login_url,facebook_login_data,function (data) {if(data.status == 1){window.location.reload();}else{console.log('登陆失败');}})});} else {console.log('该用户没有登录');}}, {scope: 'public_profile,email'});
}(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 = "https://connect.facebook.net/en_US/sdk.js";fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
window.fbAsyncInit = function() {FB.init({appId      : '你的应用编号',cookie     : true,  // 启用cookiexfbml      : true,  // 解析此页面上的社交插件version    : 'v3.2' // 使用图形api v3.2版本});
};

Php实现Facebook app端web网页登陆功能相关推荐

  1. uni-app关于小程序及app端第三方微信登陆问题(app端如何取得code值)

    加强安全保护,防止部分应用邀请新用户有奖励而产生的刷号行为,和后端配合,不从前端传openid,取得相应的code值给后端,后端再去拿到openid获取用户信息. 1.第三方微信登陆,主要是在获取co ...

  2. JS实现Web网页打印功能(IE)

    问题描述: JS实现Web网页打印功能 问题解决: 这里主要使用WebBrowser控件的ExeWB在IE中打印功能的实现 WebBrowser介绍: WebBrowser是IE内置的浏览器控件,无需 ...

  3. web网页聊天功能(可用)

    web网页聊天功能页面可正常使用 服务器搭建 MySQL=5.6  PHP>=7.0 下载链接: https://nczx.lanzouw.com/iFKqs0ke0uxi

  4. 简易iframe-前端web网页设计(iframe标签运用)

    iframe-标签的运用,简易前端web网页设计 1.iframe简介 2.图片展示 3.代码展示 4.资源下载 1.iframe简介 1.iframe一般用来包含别的页面,例如我们可以在我们自己的网 ...

  5. 借助FreeHttp为任意移动端web网页添加vConsole调试

    以下介绍在不用修改代码并发布项目的情况下,为我们日常使用的移动web应用(如手机web淘宝)添加vConsole调试工具的方法 vConsole介绍 vConsole是一个轻量.可拓展.针对手机网页的 ...

  6. 利用api接口来实现web网页登陆

    因为公司的所有链接数据库的都是用的api接口  最近做了一个用api接口登陆 function Login() { if (!Validate()) { return false; } var par ...

  7. 江湖2 java_热血江湖2手游一键端源码搭建教程+APP端+WEB端+GM工具

    源码预览 源码介绍 最新定制版淡绿唯美杰奇2.3小说模板源码 包括有[电脑版+wap手机版+关关采集器+采集规则(5个)] 最新定制版淡绿唯美杰奇2.3小说模板源码 静环境要求: 基础环境组件: ph ...

  8. 动态实现web网页登陆和注册功能[保姆级教学]

  9. APP端测试常见的功能点

                                  一.安装.卸载.更新.运行 1.安装.卸载 应用是否可以正常安装(命令行安装:apk/ipa安装包安装)(有网,无网是否都正常) 卸载过程中 ...

  10. python自动化之基于Arcgis10.2.2中Arcpy编译环境下实现arcgis应用内要素与Web网页联动功能探索--Arcgis高级超链接功能(脚本超链接的使用)

    目录 1.项目背景阐述 2.常规操作 3.新的玩法 4.启发与思路 4.1.简述 4.2.启发 5.环境搭建 6.实现步骤 7.代码 8.小结 1.项目背景阐述 为强化自然资源统一调查监测,准确掌握全 ...

最新文章

  1. 解决MySQL自动断开连接的问题
  2. MySQL库目录下db.opt文件的作用
  3. linux安装tensorflow教程,Ubuntu 16.04 安装 TensorFlow(GPU支持)
  4. 【Alpha】事后分析
  5. 体积最小桌面linux,Tiny Core Linux - 体积最小的精简 Linux 操作系统发行版之一 (仅10多MB) - 蓝月网络...
  6. 2019级软件1班安卓实训总结
  7. Android添加横线和竖线分割界面
  8. 用数据库表填充下拉列表框
  9. 【Unity3d】脚本的生命周期及其相关函数
  10. android_root后的玩机:magisk模块root隐藏/lsposedxposed框架的使用/MIUI小窗多开
  11. 指数函数 java_计算指数函数的算法
  12. 聚类——K均值简介及Python实现
  13. 计算机硬盘属于主机还是外部设备,计算机主机的外部连接分别是什么?
  14. laravel artisan 使用
  15. 变色龙哈希函数-区块链
  16. USB设备短路致使电脑故障的一些启发
  17. 计算机中真值的概念,【概念辨析】真值、机器数、原码、反码、补码、变形补码、移码...
  18. nginx部署前端项目的详细步骤
  19. 使用Jrtplib实现RTP视频数据发送接收
  20. 在一幅图中为箱线图设置不同颜色

热门文章

  1. 每天5分钟玩转Kubernetes | Liveness探测
  2. nvm npm exit status 1:乱码
  3. 组装三代番木瓜基因组——by Serenity Fang
  4. 安卓CameraX基于虹软人脸识别程序开发
  5. 417分上那所计算机学院,2021年高考417分左右能上什么大学(100所)
  6. 【掩码机制】解决LSTM中特征长度不一致问题
  7. Tomcat 安装Namecheap SSL证书教程
  8. 面试中被问到:你在工作中碰到的最困难的问题是什么?
  9. PowerBI-关系函数-RELATED RELATEDTABLE
  10. [转] 从1个月到2岁半的育儿方案,有了它宝宝都不用去上早教啦