$value) { $params .= "$key=$value"; } return md5($params . $secret_key); } public function get_user_info(OAuth2_Token_Access $token) { $request_params = array( 'app_id' => $this->client_id, 'method' => 'users.getInfo', 'uids' => $token->uid, 'access_token' => $token->access_token, 'secure' => 1 ); $sig = $this->sign_server_server($request_params,$this->client_secret); $url = 'http://www.appsmail.ru/platform/api?'.http_build_query($request_params).'&sig='.$sig; $user = json_decode(file_get_contents($url)); return array( 'uid' => $user[0]->uid, 'nickname' => $user[0]->nick, 'name' => $user[0]->first_name.' '.$user[0]->last_name, 'first_name' => $user[0]->first_name, 'last_name' => $user[0]->last_name, 'email' => isset($user[0]->email) ? $user[0]->email : null, 'image' => isset($user[0]->pic_big) ? $user[0]->pic_big : null, ); } public function authorize($options = array()) { $state = md5(uniqid(rand(), TRUE)); get_instance()->session->set_userdata('state', $state); $params = array( 'client_id' => $this->client_id, 'redirect_uri' => isset($options['redirect_uri']) ? $options['redirect_uri'] : $this->redirect_uri, 'response_type' => 'code', ); redirect($this->url_authorize().'?'.http_build_query($params)); } }