INAPP登陆调用的FB接口

  1  public function login_get (){
  2         $this->load->helper ( 'auth' );
  3 
  4         $redirectUrl = $this->input->cookie ( 'inapp_redirect', TRUE );
  5         $redirectUrl = empty ( $redirectUrl ) ? '/index' : $redirectUrl;
  6 
  7         // 判斷是否已登入
  8         if ( $this->input->cookie ( 'inapp_auth', TRUE ) ) {
  9             delete_cookie ( 'inapp_redirect' );
 10             header ( 'Location: ' . $redirectUrl );
 11             exit;
 12         }
 13 
 14         $user = $this->facebook->getUser ();
 15         if ( $user ) { // FB 己登入
 16             // 删除 redirect cookie
 17             delete_cookie ( 'inapp_redirect' );
 18 
 19             // 取得相對應的平台 uid
 20             $params           = array();
 21             $params[ 'fbid' ] = $user;
 22             $sp               = 'CALL Member_SP_GetMemberRegInfoByFbid(?,@rtn)';
 23             $member           = $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
 24             
 25             //增加禁權的攔截
 26             $status      = $member[ 'status' ];
 27             $checkStatus = $this->checkAccessBarred ( $status );
 28             if ( ! $checkStatus )
 29             exit ();
 30 
 31             // 存在則寫 cookie
 32             if ( $error_no == _SUCCESS_ ) {
 33                 // 登入 Log
 34                 $params            = array();
 35                 $params[ 'uid' ]   = $member[ 'uid' ];
 36                 $params[ 'appid' ] = 1000000;
 37                 $sp                = 'CALL App_SP_SetAppDailyLoginLog_v2(?,?,@rtn)';
 38                 $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
 39 
 40                 //会员积分登录时间
 41                 $this->memberBat ( $member[ 'uid' ] );
 42                 
 43                 //记录登陆信息
 44                 $this->member_model->addAdminLoginLog ( $member[ 'uid' ], 1, $params[ 'appid' ] );
 45   
 46                 // 取得授權
 47                 $params            = array();
 48                 $params[ 'uid' ]   = $member[ 'uid' ];
 49                 $params[ 'appid' ] = 1000000;
 50                 $sp                = 'CALL App_SP_SetUserApp(?,?,@rtn)';
 51                 $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
 52 
 53                 // 產生 auth
 54                 $auth = $this->_genAuth ( authHelper_genUUID ( $member, $this->config->item ( 'inappKey' ) ) );
 55                 $this->_setAuth ( $auth );
 56                 header ( 'Location: ' . $redirectUrl );
 57                 exit;
 58             }
 59 
 60             // 不存在則取得 FB 相關個人資料
 61             $fbuser_profile = $this->facebook->api ( '/me' );
 62 
 63             // 寫入 Member DB
 64             $params               = array();
 65             $params[ 'fbid' ]     = $fbuser_profile[ 'id' ];
 66             $params[ 'name' ]     = empty ( $fbuser_profile[ 'name' ] ) ? '' : $fbuser_profile[ 'name' ];
 67             $params[ 'link' ]     = empty ( $fbuser_profile[ 'link' ] ) ? '' : $fbuser_profile[ 'link' ];
 68             $params[ 'birthday' ] = empty ( $fbuser_profile[ 'birthday' ] ) ? '' : $fbuser_profile[ 'birthday' ];
 69             $params[ 'gender' ]   = empty ( $fbuser_profile[ 'gender' ] ) ? '' : $fbuser_profile[ 'gender' ];
 70             $params[ 'email' ]    = empty ( $fbuser_profile[ 'email' ] ) ? '' : $fbuser_profile[ 'email' ];
 71             $params[ 'ip' ]       = $_SERVER[ "REMOTE_ADDR" ];
 72 
 73             $sp     = 'CALL Member_SP_Register(?,?,?,?,?,?,?,@rtn)';
 74             $member = $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
 75 
 76             // 註冊成功
 77             if ( $error_no == _SUCCESS_ ) {
 78                 // 登入 Log
 79                 $params            = array();
 80                 $params[ 'uid' ]   = $member[ 'uid' ];
 81                 $params[ 'appid' ] = 1000000;
 82                 $sp                = 'CALL App_SP_SetAppDailyLoginLog_v2(?,?,@rtn)';
 83                 $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
 84 
 85                 //会员积分登录时间
 86                 $this->memberBat ( $member[ 'uid' ] );
 87 
 88                 //记录登陆信息
 89                 $this->load->model ( 'member_model' );
 90                 $this->member_model->addAdminLoginLog ( $member[ 'uid' ], 1, $params[ 'appid' ] );
 91 
 92                 // 取得授權
 93                 $params            = array();
 94                 $params[ 'uid' ]   = $member[ 'uid' ];
 95                 $params[ 'appid' ] = 1000000;
 96                 $sp                = 'CALL App_SP_SetUserApp(?,?,@rtn)';
 97                 $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
 98 
 99                 // 產生 auth
100                 $auth = $this->_genAuth ( authHelper_genUUID ( $member, $this->config->item ( 'inappKey' ) ) );
101             }
102 
103             header ( 'Location: ' . $redirectUrl );
104         } else { // FB 未登入
105             $url = $this->facebook->getLoginUrl ( array('scope'     => 'publish_stream, user_photos, email, user_birthday, user_online_presence', 'req_perms' => 5, 'fbconnect' => 0) );
106             header ( 'Location: ' . $url );
107         }
108     }
原文地址:https://www.cnblogs.com/jthb/p/3253051.html