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(99) Recover Binary Search Tree
题目 Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without chang ...
- Ubuntu新装系统要装软件
1. 在虚拟机中新安装系统的时候,通常因为时间过了很长,软件有更新之后,安装vim的时候会出错,因此,装完系统先要做的: cd /var/lib/dpkg/updates/ ls sudo apt-g ...
- luogu2568 GCD
先筛法求出 \([1,n]\) 间的素数,然后枚举每个素数.可以发现,对于每个素数 \(x\),它的贡献是 \([1,\lfloor n/x \rfloor]\) 间的有序互质对数. 我们钦定 \(( ...
- SQL Server on Red Hat Enterprise Linux
本文从零开始一步一步介绍如何在Red Hat Enterprise Linux上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一. 创 ...
- shell-001
for: shell_test #!/bin/bash var= var=$var+ echo $var mkdir only_a_joke shell_joke #!/bin/bash ./shel ...
- [BZOJ4779] [Usaco2017 Open]Bovine Genomics(hash + 二分)
传送门 网上的题解: 枚举左端点,二分右端点位置,最后所有左端点的答案取最小值 我的题解... 二分答案,枚举左端点,看看是否有解.. 好像和上面是反的,但是思路没问题 过程用hash判重 #incl ...
- RSA工作原理
摘自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html 一.基础数论 1.互质关系 如果两个正整数,除了1以外,没有 ...
- 常州模拟赛d5t1 journalist
分析:出题人丧心病狂卡spfa......只能用dijkstar+堆优化. 主要的难点是字典序的处理上,一个想法是在做最短路的时候处理,边松弛边记录,比个大小记录最佳答案.具体的思路大概和最短路计数差 ...
- uva 11806 容斥原理+dfs
In most professional sporting events, cheerleaders play a major role in entertaining the spectators. ...
- 【BZOJ3611】大工程(虚树,DFS序,树形DP)
题意:有一棵树,树有边权,有若干次询问,给出一些点,求: 1.这些点互相之间的距离之和 2.点对距离中的最大和最小值 n<=1000000 q<=50000并且保证所有k之和<=2* ...