Facebook第三方登陆
来源:互联网 发布:nico sm是什么软件 编辑:程序博客网 时间:2024/05/21 18:35
本文默认您可以正常访问facebook官网,并且已经注册facebook应用。
facebook登陆功能,验证方式是Oauth2.0,这样第三方应用不需要知道用户的账号密码,就可以获得用户在facebook上的注册信息。官方提供了SDK PHP v5,十分强大,可以调用官方的各种API。
1.PHP v5文档PHP SDKSDK的使用方法文档介绍很详细,这里不做赘述,需要理解命名空间,并且成功加载autoload.php,之后就可以很轻松的调用里面的方法了。
2.登陆功能实现(基于Oauth2.0认证):具体流程是,
》》用户点击facebook登陆按钮;
》》本地服务器请求facebook服务器;
》》facebook返回重定向跳转到facebook登陆页;
》》用户输入用户名密码,点击提交,请求facebook服务器;
》》facebook进行用户名密码验证,成功则携带access_token信息重定向到开发者指定的路径上(不如网站首页,可以使用获得的access_token来获取用户信息);
Oauth认证
OAuth2.0
》》附上官方文档facebook login
3.贴出部分代码(使用的是PHP V5)
本人用的是TP框架,phpv5包放在vendor目录下
<?phpnamespace Home\Controller;use Think\Controller;class FacebookController extends Controller{ public function __construct() { parent::__construct(); require_once VENDOR_PATH.'Facebook/'.'autoload.php'; //自动加载函数很重要 } //登录按钮 public function index() { //echo VENDOR_PATH; $fb = new \Facebook\Facebook([ 'app_id' =>'YOUR APP ID', 'app_secret' =>'YOUR APP SECRET', 'default_graph_version' => 'v2.5', ]); //返回的是helper对象 $helper = $fb->getRedirectLoginHelper(); //希望获得的用户权限,用户在登陆时可以选择权限 $permissions = ['email', 'user_likes']; // optional //这里的地址是用户登陆成功后的跳转地址,需要在你的app管理中心设置一下,下面有详解 $loginUrl = $helper->getLoginUrl('http://127.0.0.1/Twsearch/index.php/Home/Facebook/get_access', $permissions); echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>'; } public function get_access($code) { $fb = new \Facebook\Facebook([ 'app_id' =>'YOUR APP ID', 'app_secret' =>'YOUR APP SECRET', 'default_graph_version' => 'v2.5',] ); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch(\Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(\Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($accessToken)) { // Logged in 获得access_token并保存到session里! $_SESSION['facebook_access_token'] = (string) $accessToken;echo $accessToken; // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] } }}
3.需要注意的两点
3.1跳转路径需要在APP管理中心设置APP高级设置
这里的地址要跟代码里的地址匹配
3.2如果您使用翻墙访问facebook那本地服务器通过curl来访问facebook是就需要加上代理设置
两个标记一个是添加代理,另一个是跳过证书验证。
- Facebook第三方登陆
- facebook第三方登陆
- Facebook第三方登陆
- iOS 第三方登陆 —— FaceBook
- Android 集成facebook 第三方登陆
- web开发第三方登陆之facebook登陆
- Android对接第三方登陆+支付(google+facebook)
- Facebook实现第三方登陆invalidKeyHash的解决方法
- Facebook实现第三方登陆invalidKeyHash的解决方法
- Facebook第三方登录
- 利用FaceBook实现第三方登陆(自定义登陆按钮,非官方按钮)并获取用户数据
- 第三方登陆 ,微信扫码登陆
- facebook第三方登陆,出现“所提供的网址不被应用程序配置所接纳”错误
- thinksns 第三方登陆
- 第三方授权登陆
- 第三方账号登陆
- QQ第三方登陆
- 第三方登陆总结
- LRU Cache数据结构
- activiti自定义流程之整合(四):整合自定义表单部署流程定义
- tomcat + memcached 实现session共享
- 职责链模式
- 三角形(4)
- Facebook第三方登陆
- storm 报错:java.nio.channels.ClosedChannelException: null
- 三角形(5)
- Android Activity启动过程简读 <1>
- CNN代码解析
- ListView(二)——常用
- opencv之Mat 类赋值的理解
- Android消息处理机制实现同步效果
- poj1664 经典深搜