Vk api как отправить сообщение

Что мы будем делать: настроим отправку сообщений от имени конкретного пользователя в несколько чатов и другим пользователям используя HTTP запрос средствами PHP, с минимальными усилиями.

Собственно, одними сообщениями мы не ограничимся. Все будет работать через standalone приложение vk по тому принципу, что мы потенциально сможем делать все действия, которые будут доступны этому самому пользователю (точнее все то, на что мы выдадим сами себе права, но об этом чуть позже).

Сообщения рассматриваем именно по той причине, что с ними можно работать только в standalone-приложениях.

План действий:
1. Создаем приложение
2. Получаем access_token
3. отправляем сообщения

1. Создаем приложение

Этот пункт делать под тем аккаунтом, к которому будет привязано приложение (Не обязательно тот же, с которого будут идти сообщения).

image

Имя пишем какое угодно — фигурировать оно нигде не будет.
Тип — Standalone-приложение.

Далее потребуется ввести код с смс-ки которая придет на привязанный к аккаунту номер. После ввода кода ничего не меняем в полях, идем в настройки и копируем ID приложения.

image

Больше тут можно ничего не трогать.

2. Используя ID и secret_key из приложения получаем access_token

access_token — строка из некоторого количества символов, которая будет отправляться с POST запросом для выполнения каких то функций. Собственно, к ней привязано, от имени какого пользователя будем действовать и что нам можно будет делать.

Для этого создаем на сайте страничку вот с таким кодом:

$client_id — собственно, ID нашего приложения из пункта 1.

$scope — список прав, которые мы можем делать от имени нашего пользователя. Конктерно, для нашей задачи подходит именно такой: возможность доступа в любое время (offline), и доступ к сообщениям (messages). Если надо больше, полный список тут. Можно выставлять либо битовой маской, либо перечислить названия.

Еще по теме:  Скопируйте и вставьте этот код на стену Вконтакте или facebook

Далее, важный момент: Заходим на нашу страничку с кнопкой, будучи залогованы в ВК под тем пользователем, от имени которого будем работать, и жамкаем по кнопочке. Появится подобный запрос:

image

Помимо пункта доступ к общей информации, все остальные пункты будут соответствовать списку разрешений, которые были переданы в scope. Жмем далее и видим следующее:

image

Красным выделен acces_token, ради которого весь второй пункт и писался.

3. HTTP запросами, передавая через POST параметры отправляем сообщения или используем любые другие методы API

Для нетерпеливых, проверить что все работает можно так:

Заменяем нули в конце на наш acces_token и переходим по этой ссылке в браузере.

https://api.vk.com/method/messages.send?user_id=6269901v=5.37sel=c888. Наш chat_id будет 888 (! не с888)

Vk Api отправка сообщения на стену

Создание бота Вк на языке PHP за 40 минут / Уроки API Вконтакте

Полный список методов (при параметре scope=offline,messages) работать можно будет, соответственно только с разделом сообщений.

Ну и напоследок функция для отправки сообщения через POST. Простая, как автомат Калашникова — просто для наглядности:

function send($id , $message) < $url = ‘https://api.vk.com/method/messages.send’; $params = array( ‘user_id’ =>$id, // Кому отправляем ‘message’ => $message, // Что отправляем ‘access_token’ => ‘0000000000000000000000000000’, // access_token можно вбить хардкодом, если работа будет идти из под одного юзера ‘v’ => ‘5.37’, ); // В $result вернется id отправленного сообщения $result = file_get_contents($url, false, stream_context_create(array( ‘http’ => array( ‘method’ => ‘POST’, ‘header’ => ‘Content-type: application/x-www-form-urlencoded’, ‘content’ => http_build_query($params) ) ))); >

Источник: habr.com

Как используя VK API отправить сообщение в беседу

юМного пробовал, не получалось, мне нужно что бы после определенной проверки, если проверка верна, отправлялось определеннее сообщение в беседу вконтакте от сообщества.

Отслеживать
задан 30 июн 2021 в 0:59
21 2 2 бронзовых знака

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

P.S. проверка — if msg == ‘привет’:

import vk_api from vk_api.longpoll import VkLongPoll, VkEventType vk_session = vk_api.VkApi(token = «ТОКЕН») longpoll = VkLongPoll(vk_session) def sender(id, text): # функция отправления vk_session.method(‘messages.send’, ) # это просто запомнить for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: if event.from_chat: msg = event.text.lower() # последние сообщение пользователя #id беседы в который был ивент if msg == ‘привет’: sender(id, ‘Приветики’) # отправляем в sender(id, text) id беседы и текст
Отслеживать
ответ дан 30 июн 2021 в 6:54

Еще по теме:  Жилетки большие размеры садовод Вконтакте

647 1 1 золотой знак 2 2 серебряных знака 18 18 бронзовых знаков
session = vk_api.VkApi(token=your_token) session.method(‘messages.send’, )
Отслеживать
ответ дан 30 июн 2021 в 1:32
716 1 1 золотой знак 3 3 серебряных знака 17 17 бронзовых знаков

Можешь пожалуйста написать полный код с комментариями, я все еще плохо в этом разбираюсь, буду невероятно благодарен!)

Источник: ru.stackoverflow.com

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

vk_api / README.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
105 lines (103 sloc) 5.75 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

Документация по vk_api

Данная библиотека позволяет: отправлять сообщения, изображения и клавиатуру для ботов ВК.

Внимание ! Поддержка бесед работает только если выбрана версия callBack api старше 5.8

require_once «vk_api.php»; //Подключаем библиотеку для работы с vk_api $vk = new vk_api(«ВАШ_ТОКЕН», «ВЕРСИЯ_API»); //Токен сообщества VK
$method //Метод из документации api в VK $array_arguments //Массив входных параметров $vk->request($method, $array_arguments);

Возвращает массив ответа от api ВК, т.е. все параметры, указанные в документации вк к методу
Пример:

$vk->request(‘users.get’, [«user_ids» => $id]) // Получение имени и фамилия пользователя по ID

Отправка ВК статуса ‘Ок’:

Метод возвращает HTTP код 200, отвечает ‘ок’ и продолжает дальнейшее выполнение скрипта, не заставляя CallBack ВК ожидать ответа. Нужен для того, что-бы вк не ловил ошибки типа превышено время ожидания выполнения при выполнении достаточно больших скриптов.

Внимание ! Всё, что будет выведено скриптом (в том числе ошибки) после метода sendOK() не будет выводится, рекомендуется заменить на echo ‘ок’; во время отладки.

$vk->sendOK();
$id // ID — пользователя или peer_id беседы $message // сообщение $vk->sendMessage($id, $message);
$id // ID пользователя VK, которому будет отправлена картинка или peer_id беседы $upload_image // Локальный путь до картинке $vk->sendImage($id, $upload_image);
$vk->sendImage($id, «img/pink_salmon.jpg»);

Еще по теме:  Как узнать почту человека через ВК

Работа с клавиатурой:

$button1_1 = [null, «white», «white»]; $button1_2 = [[«animals» => ‘Pig’], «blue», «blue»]; $button2_1 = [[«animals» => ‘Cow’], «green», «green»]; $button2_2 = [[«animals» => ‘Chicken’], «red», «red»];

Как описываются кнопки ?

Параметр 1: Payload — может принимать значение: ассоциативный массив или null
Параметр 2: Надпись на кнопке — текст
Параметр 3: Цвет кнопки — может принимать значения: white, blue, green, red

$id // ID пользователя, кому будет отправлена клавиатура, или peer_id беседы $message // Сообщение, отправляемое вместе с клавиатурой $buttons = [[$button, ], ] // Массив из отправляемый кнопок $one_time // Не обязательный параметр. Принимает значение True или False.

Если True — после нажатия клавиши клавиатуры, клавиатура исчезнет, Flase — не исчезнет. По умолчанию = False $vk->sendButton($id, $message, $buttons, $one_time);

Пример, отправка клавиатуры с текстом «Клавиатура»:

$id // ID пользователя, кому будет отправлена клавиатура [[$button, ], . ] // Массив из отправляемый кнопок $one_time // Не обязательный параметр. Принимает значение True или False. Если True — после нажатия клавиши клавиатуры, клавиатура исчезнет, Flase — не исчезнет. По умолчанию = False $vk->sendButton($id, ‘Клавиатура’, [ [$button1_1, $button1_2], [$button2_1, $button2_2] ], $one_time);

Кнопки будут выглядеть так:

[ white ] [ blue ] [ green ] [ red ]
$vk->sendButton($id, ‘Клавиатура’, [ [$button1_1, $button1_2, $button2_2], [$button2_1] ]);

Выведет следующие кнопки:

[ white ] [ blue ] [ red ] [ green ]

Удаление кнопок (клавиатуры из диалога):

Обращаем ваше внимание, что если передать параметр $one_time = True (см. отправка клавиатуры), клавиатура исчезнет после нажатия на одну из кнопок.
Для того, что-бы вручную выключить клавиатуру, нужно выполнить следующий запрос:

$id // ID пользователя $message // Сообщение, отправляемое при удалении клавиатуры $vk->sendButton($id, $message);

Источник: github.com

Рейтинг
( Пока оценок нет )
Загрузка ...