利用Facebook登录应用的方法
来源:互联网 发布:excel调用数据图表 编辑:程序博客网 时间:2024/06/04 19:32
1,在Facebook页面创建自己的应用
2,选择应用的类型
3,填写好app的名字与app的归类
4,配置及其他填写可以先暂时不填,返回应用页。如图。
5,在setting页面配置自己的app(localhost处需要填写自己服务器的地址)
6,这样Facebook页面的app配置就OK了。。从setting页面我们可以获取App ID和App Secret
APP ID:111xxxxx232*****12
App Secret:bbd4XXXXX15b04*****11c21b5b
7,Facebook进行登录
7-1:controller
<?phpclass test extends MY_Controller{ public function __construct() { parent::__construct(); session_start(); }
//此处为Facebook登录授权页面
public function facebook_login(){ $config = $this->config->item('facebook');//此处为Facebook的app id和app secret,保存在配置文件中,你也可以保存到其他地方$this->load->library('fb_share_service', $config);$url = $this->fb_share_service->login_url(base_url().'fb_callback');$this->session->set_userdata('FBRLH_state', $_SESSION['FBRLH_state']);if (!empty($url)) {redirect($url);//此处在向Facebook发送请求,获取access token。} } //此处为Facebook回调函数页面 public function facebook_callback(){$_SESSION['FBRLH_state'] = $this->session->userdata('FBRLH_state');$config = $this->config->item('facebook');$this->load->library('fb_share_service', $config);$facebook_user_info = $this->fb_share_service->login_callback(base_url() . 'fb_callback');if (!empty($facebook_user_info)) {$token['fb_token'] = $facebook_user_info['token'];$token['fb_id'] = $facebook_user_info['user_id']; log_message('debug', 'fb_token:'.$token['fb_token']); log_message('debug', 'fb_id:'.$token['fb_id']);} else {$handler_flg = FALSE;}}}7-2:library
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');require_once(APPPATH.'third_party/facebook/FacebookSession.php');require_once(APPPATH.'third_party/facebook/FacebookRequest.php');require_once(APPPATH.'third_party/facebook/GraphUser.php');require_once(APPPATH.'third_party/facebook/FacebookRequestException.php');require_once(APPPATH.'third_party/facebook/FacebookRedirectLoginHelper.php');class fb_share_service{ private $app_id; private $app_secret; public function fb_share_service($config) { $this->app_id = $config['appId']; $this->app_secret = $config['secret']; log_message('debug', 'Facebook_config_appId:'.$config['appId']); log_message('debug', 'Facebook_share_appId:'.$this->app_id); log_message('debug', 'Facebook_config_secret:'.$config['secret']); log_message('debug', 'Facebook_share_secret:'.$this->app_secret); FacebookSession::setDefaultApplication($this->app_id, $this->app_secret); } /** * create login url for facebook * @param string $callback_url 此处的callback url是在服务器自定义的回调函数 */ public function login_url($callback_url) { $helper = new FacebookRedirectLoginHelper($callback_url, $apiVersion = NULL); return $helper->getLoginUrl(array('publish_actions')); } /** * get access_token from callback * @param string $callback_url */ public function login_callback($callback_url) { $helper = new FacebookRedirectLoginHelper($callback_url); try { $session = $helper->getSessionFromRedirect(); if (!empty($session)) { $token = $session->getToken(); if (!empty($token)) { $appsecret_proof= hash_hmac('sha256', $token, $this->app_secret); $request = new FacebookRequest( $session, 'GET', '/me/permissions', array('appsecret_proof' => $appsecret_proof) ); $response = $request->execute(); $response_data = $response->getResponse()->data; if (is_array($response_data)) { foreach ($response_data as $key => $value) { $permission = $value->permission; if ('publish_actions' == $permission) { $user_profile = (new FacebookRequest( $session, 'GET', '/me', array('appsecret_proof' => $appsecret_proof) ))->execute()->getGraphObject(GraphUser::className()); $res['user_id'] = $user_profile->getId(); $res['token'] = $token; return $res; } } } } } return NULL; } catch(FacebookRequestException $ex) { // When Facebook returns an error log_message('debug', 'FacebookRequestException'); log_message('error', $ex->getMessage()); return NULL; } catch(\Exception $ex) { log_message('debug', 'Exception'); log_message('error', $ex->getMessage()); // When validation fails or other local issues return NULL; } }}
0 0
- 利用Facebook登录应用的方法
- 利用sharesdk来进行facebook的登录
- 战胜Facebook的方法
- facebook 登录
- Facebook登录
- FaceBook登录
- FaceBook登录
- Android Facebook登录的简单实现
- FaceBook第三方登录的接入封装
- 简单的faceBook第三方登录Demo
- 站外应用登录验证设计探讨 (参考 facebook )
- ThinkPHP中利用SESSION实现用户登录验证的方法
- 利用SQL注入漏洞登录后台的实现方法
- 史上最简单登录google/youtube/facebook/twitter/方法
- 史上最简单登录google/youtube/facebook/twitter/方法
- Android Facebook第三方登录方法之LoginManager
- 利用DataSet的登录
- 论文:Hadoop在Facebook的实时应用
- php获取url
- win8全新安装wampserver数据库管理phpmyadmin显示forbidden 403错误 的解决方法
- 两种初始化参数文件
- iOS 图片加载 圆形进度条
- android使用http协议实现多线程断点下载
- 利用Facebook登录应用的方法
- 【5/18笔记】主要关于margin负值和display:none,overflow清除浮动
- 《教程系列1》1、前言
- mongodb的监控与性能优化
- 24>数据安全
- Java中的Enum的使用与分析
- 单链表反转面试题
- java.lang.NoClassDefFoundError异常
- android 完全退出应用程序