@vkcoinbote1

Не могу нормально сделать вывод смс при вступление в группу ВК БОТ?

ЕСТЬ КОД php для версии 5.0, можете скинуть код для версии 5.103 (чтоб выводились смс при подписке и отписке)
case 'group_join':
//...получаем id нового участника
        $user_id = $data->object->user_id; 
    //затем с помощью users.get получаем данные об авторе 
    $user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&access_token={$token}&v=5.0"));


//и извлекаем из ответа его имя
        $user_name = $user_info->response[0]->first_name;

        //С помощью messages.send и токена сообщества отправляем ответное сообщение
        $request_params = array(
            'message' => "Добро пожаловать в наше сообщество, {$user_name}!",
            'user_id' => $user_id,
            'access_token' => $token,
            'v' => '5.0'
        );
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
@nikitos42050
PHP, C# Developer
Во-первых Вы передаете параметр 'v' => '5.0', хотя минимум должен быть 5.50.
Вы должны передавать версию API, которую используете, а не версию PHP.

Во-вторых, я бы рекомендовал обновить версию PHP на более шуструю, чем 5.0.
В-третьих, в строчке: "$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$use..."));" нет окончания строки, хотя )); есть. Хм, возможно Вы откуда-то просто скопировали этот код, но это нам не важно.

Просто замените эту строку на:
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&access_token={$token}&v=5.103"));

Потом... строчку 'v' => '5.0'
Замените на 'v' => '5.103'

В настройках группы, замените в разделе "Работа с API" -> "Callback API" -> "Настройка сервера" версию API на 5.103.
А в разделе  "Работа с API" -> "Callback API" -> "Типы запросов" поставьте галочки "Вступление в сообщество", и если нужно то "Выход из сообщества".


И также Ваш код заканчивается на:
//С помощью messages.send и токена сообщества отправляем ответное сообщение
$request_params = array(
'message' => "Добро пожаловать в наше сообщество, {$user_name}!",
'user_id' => $user_id,
'access_token' => $token,
'v' => '5.0'
);


Хотя, в таком случае нужно также и отправить его.
Добавьте в конце
$get_params = http_build_query($request_params);
file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
echo('ok'); (Если нет)
break; (Если нет)

Также, если нужно помочь настроить, и если Вы не поняли ничего по моему тексту, то напишите мне в VK.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы