INAPP登陆调用的FB接口
public function login_get (){
$this->load->helper ( 'auth' );
$redirectUrl = $this->input->cookie ( 'inapp_redirect', TRUE );
$redirectUrl = empty ( $redirectUrl ) ? '/index' : $redirectUrl;
// 判斷是否已登入
if ( $this->input->cookie ( 'inapp_auth', TRUE ) ) {
delete_cookie ( 'inapp_redirect' );
header ( 'Location: ' . $redirectUrl );
exit;
}
$user = $this->facebook->getUser ();
if ( $user ) { // FB 己登入
// 删除 redirect cookie
delete_cookie ( 'inapp_redirect' );
// 取得相對應的平台 uid
$params = array();
$params[ 'fbid' ] = $user;
$sp = 'CALL Member_SP_GetMemberRegInfoByFbid(?,@rtn)';
$member = $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
//增加禁權的攔截
$status = $member[ 'status' ];
$checkStatus = $this->checkAccessBarred ( $status );
if ( ! $checkStatus )
exit ();
// 存在則寫 cookie
if ( $error_no == _SUCCESS_ ) {
// 登入 Log
$params = array();
$params[ 'uid' ] = $member[ 'uid' ];
$params[ 'appid' ] = 1000000;
$sp = 'CALL App_SP_SetAppDailyLoginLog_v2(?,?,@rtn)';
$this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
//会员积分登录时间
$this->memberBat ( $member[ 'uid' ] );
//记录登陆信息
$this->member_model->addAdminLoginLog ( $member[ 'uid' ], 1, $params[ 'appid' ] );
// 取得授權
$params = array();
$params[ 'uid' ] = $member[ 'uid' ];
$params[ 'appid' ] = 1000000;
$sp = 'CALL App_SP_SetUserApp(?,?,@rtn)';
$this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
// 產生 auth
$auth = $this->_genAuth ( authHelper_genUUID ( $member, $this->config->item ( 'inappKey' ) ) );
$this->_setAuth ( $auth );
header ( 'Location: ' . $redirectUrl );
exit;
}
// 不存在則取得 FB 相關個人資料
$fbuser_profile = $this->facebook->api ( '/me' );
// 寫入 Member DB
$params = array();
$params[ 'fbid' ] = $fbuser_profile[ 'id' ];
$params[ 'name' ] = empty ( $fbuser_profile[ 'name' ] ) ? '' : $fbuser_profile[ 'name' ];
$params[ 'link' ] = empty ( $fbuser_profile[ 'link' ] ) ? '' : $fbuser_profile[ 'link' ];
$params[ 'birthday' ] = empty ( $fbuser_profile[ 'birthday' ] ) ? '' : $fbuser_profile[ 'birthday' ];
$params[ 'gender' ] = empty ( $fbuser_profile[ 'gender' ] ) ? '' : $fbuser_profile[ 'gender' ];
$params[ 'email' ] = empty ( $fbuser_profile[ 'email' ] ) ? '' : $fbuser_profile[ 'email' ];
$params[ 'ip' ] = $_SERVER[ "REMOTE_ADDR" ];
$sp = 'CALL Member_SP_Register(?,?,?,?,?,?,?,@rtn)';
$member = $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
// 註冊成功
if ( $error_no == _SUCCESS_ ) {
// 登入 Log
$params = array();
$params[ 'uid' ] = $member[ 'uid' ];
$params[ 'appid' ] = 1000000;
$sp = 'CALL App_SP_SetAppDailyLoginLog_v2(?,?,@rtn)';
$this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
//会员积分登录时间
$this->memberBat ( $member[ 'uid' ] );
//记录登陆信息
$this->load->model ( 'member_model' );
$this->member_model->addAdminLoginLog ( $member[ 'uid' ], 1, $params[ 'appid' ] );
// 取得授權
$params = array();
$params[ 'uid' ] = $member[ 'uid' ];
$params[ 'appid' ] = 1000000;
$sp = 'CALL App_SP_SetUserApp(?,?,@rtn)';
$this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
// 產生 auth
$auth = $this->_genAuth ( authHelper_genUUID ( $member, $this->config->item ( 'inappKey' ) ) );
}
header ( 'Location: ' . $redirectUrl );
} else { // FB 未登入
$url = $this->facebook->getLoginUrl ( array('scope' => 'publish_stream, user_photos, email, user_birthday, user_online_presence', 'req_perms' => 5, 'fbconnect' => 0) );
header ( 'Location: ' . $url );
}
}
INAPP登陆调用的FB接口的更多相关文章
- 调用支付宝第三方接口(沙箱环境) SpringMVC+Maven
一.蚂蚁金服开放平台的操作 网址:https://open.alipay.com/platform/home.htm 支付宝扫码登陆
- 在php中调用以及编写接口(转)
如: http://localhost/openUser.php?act=get_user_list&type=json 在这里openUser.php相当于一个接口,其中get_user_l ...
- python接口自动化(三十五)-封装与调用--流程类接口关联(详解)
简介 流程相关的接口,主要用 session 关联,如果写成函数(如上篇),s 参数每个函数都要带,每个函数多个参数,这时候封装成类会更方便.在这里我们还是以博客园为例,带着小伙伴们实践一下. 接口封 ...
- 如何请求一个需要登陆才能访问的接口(基于cookie)---apipost
在后台在开发.调试接口时,常常会遇到需要登陆才能请求的接口. 比如:获取登陆用户的收藏列表,此时,我们就需要模拟登陆状态进行接口调试了.如图: 今天,我们讲解利用ApiPost的环境变量,解决这种需要 ...
- java调用CXF WebService接口的两种方式
通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...
- java获取https网站证书,附带调用https:webservice接口
一.java 获取https网站证书: 1.创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader ...
- asp.net mvc 如何调用微信jssdk接口:分享到微信朋友(圈)| 分享到qq空间
如何在asp.net mvc 项目里, 调用微信jssdk接口,现实功能: 分享到微信朋友(圈)| 分享到qq空间 1 创建一个Action,准备一些数据,初始化数据(签名): /// <sum ...
- 关于微信网页调用js-sdk相关接口注意事项目(一级域名与二级域名互相干扰!!!)
不知道有没有网友遇到过同一个web应用用不同的域名(一级或二级域名)在两个公众号中调用JSSDK相关接口实现功能, 这种做法本来没有问题,问题在于用二级域名(同属一级域名下的二级域名)绑定另一个web ...
- JS调用腾讯接口获取天气
想做个直接通过JS获取某个城市的天气.本来想通过直接调用中国气象网的接口: http://www.weather.com.cn/weather/101070201.shtml,但是跨域问题一直无法解决 ...
随机推荐
- LeetCode(113) Path Sum II
题目 Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given ...
- js 秒杀
秒杀活动页面 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" ...
- pymongo使用方法
MongoDB存储 在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python 的PyMong ...
- luogu1345 [USACO5.4]奶牛的电信Telecowmunication
对于每个点,把它拆成有权值为1的边相连的两个点,原边是inf. 边的起点统一加n,ss也加n 这就成了最小割 #include <iostream> #include <cstrin ...
- matlab调用自己写的函数时报错: reference to a cleared variable
原因是在自己写的函数中加了clear. 解决办法:自己定义的函数中不能加clear,可以加clc;
- SQL注入与xss
1. 什么是SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.通过递交参数构造巧妙的SQL语句,从而成功获取 ...
- 算法总结——主席树(poj2104)
题目: Description You are working for Macrohard company in data structures department. After failing y ...
- [HNOI2008]越狱 (组合数学)
题目描述 监狱有连续编号为 1-N 的 N 个房间,每个房间关押一个犯人,有 M 种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱. 输入输出 ...
- P2949 [USACO09OPEN]工作调度Work Scheduling
题目描述 约翰有太多的工作要做.为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间. 他的工作日从0时刻开始,有10^8个单位时间.在任一时刻,他都可以选择编号1~N的N(1 <= ...
- [JSOI2007] 祖玛 (区间DP)
题目描述 这是一个流行在Jsoi的游戏,名称为祖玛. 精致细腻的背景,外加神秘的印加音乐衬托,彷佛置身在古老的国度里面,进行一个神秘的游戏——这就是著名的祖玛游戏.祖玛游戏的主角是一只石青蛙,石青蛙会 ...