Всем привет!
Имеется некое приложение для мобильных устройств (android, ios), в котором нужно сделать авторизацию через соц.сеть vk.com.
Перечитал кучу документации по api vk, но так и ничего не вышло.
Там сказано создать приложение у себя в профиле на сайте vk.com, это у меня уже готово, а именно параметры:
client_secret, client_id, code.
Логика работы должна быть такой:
1)Клиент заходит в приложение на мобилке, жмет авторизация с помощью вк.
2)Далее данные поступают на наш сервер(сайт/обработчик), где скрипт на php проверяет на наличие этот user_id vkontakte пользователя, ну и соответственно если нет добавляет его в базу со всеми токенами и прочее если есть просто авторизует.
В качестве примера выкладываю скрипт где реализована регистрация/логин только для фейсбука, мне нужно сделать похожее но только для vk.com.
public function action_fblogin()
{
$token = $this->request->query('access_token');
if ($token && is_string($token))
{
$response = json_decode(
$this->create_request('https://graph.facebook.com/me/?access_token='.$token.'&locale=ru_RU')
->execute()
->body()
);
if (isset($response->error)) {
$this->response_json = array('fb_error' => $response->error);
return;
}
if (!isset($response->id)) {
$this->response_json = array('error' => 'Не удалось получить ID учётной записи в Facebook');
return;
}
$_email = isset($response->email) ? $response->email : '';
$user = ORM::factory('User')->where('facebook_id', '=', $response->id);
if ($_email)
$user = $user->or_where('email', '=', $_email);
$user->find();
if ($user->loaded()) {
$this->response_json = array(
'user_id' => $user->id,
'token' => $user->create_token($this->request->headers('User-Agent')),
'name' => $user->name,
'email' => $user->email,
'gender' => $user->gender,
'phone' => $user->phone,
'avatar' => $user->avatar->full_url(),
);
}
else {
$_gender = 0;
if (isset($response->gender)) {
if ($response->gender == 'male' || $response->gender == 'мужской')
$_gender = 1;
elseif ($response->gender == 'female' || $response->gender == 'женский')
$_gender = 2;
}
}
}
Надеюсь, понятно объяснил, буду рад любой помощи!
P.s В качестве фреймворка используется Kohana, если это чем-то поможет.