Всем привет! В программировании я особо не шарю, но в моём вопросе оно особо и не понадобится, вопрос решается за пару строк. Мне нужно сделать так чтобы при авторизации на сайте, скрипт проверял состоит ли человек в моей группе, если не состоит чтобы его перекидывало на заданую мной ссылку ( /lobby.php ) где ему предложат подписаться для продолжения. Знаю что это можно сделать через VK API и функцию groups.isMember Вот код с помощью которого можно всё подключить PHP: $community = айди группы; $profile = айди профиля; $answer = json_decode(file_get_contents("http://api.vk.com/method/groups.isMember?gid=".$community."&uid=".$profile)); if($answer->response == 0){ header("Location: /lobby.php"); Вот мой код для авторизации PHP: if (!empty($_GET['code'])) { $error_msg = "ОШИБКА АВТОРИЗАЦИИ!"; $token = json_decode(file_get_contents('https://oauth.vk.com/access_token?client_id='.$cfg["site"]["vk_app"].'&client_secret='.$cfg["site"]["vk_app_key"].'&code='.$_GET['code'].'&redirect_uri='.$cfg["site"]["vk_app_s"]), true); $fields = 'first_name,last_name,photo_50'; $uinf = json_decode(file_get_contents('https://api.vk.com/method/users.get?uids='.$token['user_id'].'&fields='.$fields.'&access_token='.$token['access_token'].'&v=5.80'), true); if(empty($uinf['response'][0]['first_name']) or empty($token['user_id']) or empty($token['access_token'])) exit($error_msg); $_SESSION['first_name'] = $uinf['response'][0]['first_name']; $_SESSION['last_name'] = $uinf['response'][0]['last_name']; $_SESSION['uid'] = $token['user_id']; $db = new SafeMySQL($cfg["connect"]); $user = $db->getRow("SELECT * FROM `users` WHERE `vk_id` = ?i", $_SESSION['uid']); if(!$user) { $db->query("INSERT INTO `users`(`vk_id`, `name`) VALUES (?i,?s)",$_SESSION['uid'],$_SESSION['first_name']." ".$_SESSION['last_name']); } header ("Location: /"); }else { header ("Location: https://oauth.vk.com/authorize?client_id=".$cfg["site"]["vk_app"]."&redirect_uri=".$cfg["site"]["vk_app_s"]."&response_type=code"); } Если кто нибудь знает как это можно всё настроить, умоляю помогите !
Кто-то знает.. У вас все есть, соедините два куска кода. После того как авторизовались или зарегистрировали пользователя - проверяете по id пользователя - в группе он или нет, ну и пишите наверное в бд в профиль пользователя флаг участия в группе
Ребят, мне пришло сообщение от поддержки вк. Кто нибудь может мне помочь / или за деньги? Авторизуете пользователя, получаете его токен, у которого есть доступ к groups, вызываете https://vk.com/dev/groups.isMember, тем самым проверяете, является ли он участником сообщества или нет. Если не является, то можно показывать экран с просьбой вступить в группу и кнопкой проверки (пользователь подписывается, нажимает на кнопку, Вы повторно вызываете groups.isMember. Можно и не запрашивать токен с доступом к группам, а вызывать groups.isMember со своим токеном/токеном сообщества. Но если у Вас несколько тысяч авторизаций в день, то можно нарваться на суточные лимиты на вызов groups.isMember со своим токеном/токеном сообщества.
@Noob_User я так понимаю у вас эта штука не работает? PHP: $answer = json_decode(file_get_contents("http://api.vk.com/method/groups.isMember?gid=".$community."&uid=".$profile)); if($answer->response == 0){ header("Location: /lobby.php"); } а с остальным все в порядке?