За последние 24 часа нас посетили 63358 программистов и 6140 роботов. Сейчас ищут 3179 программистов ...

Авторизация на пустой страничке через VK

Тема в разделе "PHP для новичков", создана пользователем Sofia, 1 авг 2025.

  1. Sofia

    Sofia Активный пользователь

    С нами с:
    25 сен 2008
    Сообщения:
    972
    Симпатии:
    2
    Всем хорошего времени суток.
    Почитала инструкцию, искала примеры... В итоге ничего не работает.
    Может кто делал авторизацию на одностраничном сайте авторизацию через VK?
    Использовала пример, но он уже не актуален...
    Может его переделать возможно? В общем пишет в итоге: Выбранный способ авторизации не доступен для приложения. Попробуйте позже или обратитесь к администратору приложения
    PHP:
    1. <?php
    2.  
    3. $client_id = ***; // ID приложения
    4. $client_secret = '***'; // Защищённый ключ
    5. $redirect_uri = 'https://ram-service.su/auth.php'; // Адрес сайта
    6.  
    7. $url = 'http://oauth.vk.com/authorize'; // Ссылка для авторизации на стороне ВК
    8.  
    9. $params = [ 'client_id' => $client_id, 'redirect_uri'  => $redirect_uri, 'response_type' => 'code']; // Массив данных, который нужно передать для ВК содержит ИД приложения код, ссылку для редиректа и запрос code для дальнейшей авторизации токеном
    10.  
    11. if(isset($_SESSION['id'])) {
    12.  
    13.     echo "Вы уже авторизованы";
    14.  
    15. } else {
    16.  
    17.     echo $link = '<p><a href="' . $url . '?' . urldecode(http_build_query($params)) . '">Аутентификация через ВКонтакте</a></p>';
    18. }
    19.  
    20. if (isset($_GET['code'])) {
    21.     $result = true;
    22.     $params = [
    23.         'client_id' => $client_id,
    24.         'client_secret' => $client_secret,
    25.         'code' => $_GET['code'],
    26.         'redirect_uri' => $redirect_uri
    27.     ];
    28.  
    29.     $token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);
    30.  
    31.     if (isset($token['access_token'])) {
    32.         $params = [
    33.             'uids' => $token['user_id'],
    34.             'fields' => 'uid,first_name,last_name,screen_name,sex,bdate,photo_big',
    35.             'access_token' => $token['access_token'],
    36.             'v' => '5.101'];
    37.  
    38.         $userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
    39.         if (isset($userInfo['response'][0]['id'])) {
    40.             $userInfo = $userInfo['response'][0];
    41.             $result = true;
    42.         }
    43.     }
    44.  
    45.     if ($result) {
    46.         echo "ID пользователя: " . $userInfo['id'] . '<br />';
    47.         echo "Имя пользователя: " . $userInfo['first_name'] . '<br />';
    48.         echo "Ссылка на профиль: " . $userInfo['screen_name'] . '<br />';
    49.         echo "Пол: " . $userInfo['sex'] . '<br />';
    50.         echo "День Рождения: " . $userInfo['bdate'] . '<br />';
    51.         echo '<img src="' . $userInfo['photo_big'] . '" />'; echo "<br />";
    52.  
    53.     }
    54. }
    55.  
    56. $_SESSION['id'] = $userInfo['id'];
    57. ?>
     
  2. Sofia

    Sofia Активный пользователь

    С нами с:
    25 сен 2008
    Сообщения:
    972
    Симпатии:
    2
    Опять что-то поменяли в VK. Похоже с этим не разобраться.
     
  3. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    945
    Симпатии:
    146
    По сути не помогу, а имя у тебя замечательное, сами потенциальную дочь так назвать хотели, да...
    И подпись гожая.