Отправка и прием сообщений ВКонтакте


Отправка сообщений

Отправка сообщений VK осуществляется аналогично отправке SMS, при этом в список передаваемых параметров добавляется параметр type со значением vk.

Отправка VK-сообщения GET-запросом

https://auth.terasms.ru/outbox/send?login=login&target=78002223344&sender=terasms.ru&message=terasms rulez&type=vk&sign=3e6eb14d4b7c06d77aecd92904d964c2

Описание параметров

Формат ответа аналогичен ответу при отправке SMS: либо ID сообщения в виде положительного числа, либо ошибка в виде отрицательного числа.

Коды ошибок

Пример в формате JSON

запрос

> POST auth.terasms.ru/outbox/send/json { "login": "login", "sign": "3e6eb14d4b7c06d77aecd92904d964c2", "target": 78001234567, "message": "terasms rulez", "sender": "terasms.ru", "type": "vk" }

ответ

{ "status": 0, "status_description": "OK", "message_infos": [ { "msisdn": "78001234567", "id": "123456789", "status": null, "price": "0.4000" } ] }

Пример в формате XML

запрос

> POST auth.terasms.ru/outbox/send/xml <?xml version="1.0"?> <request> <login>login</login> <sign>3e6eb14d4b7c06d77aecd92904d964c2</sign> <target>78001234567</target> <message>ку-ку</message> <sender>terasms.ru</sender> <type>vk</type> </request>

ответ

<?xml version="1.0"?> <response> <status>0</status> <status_description>OK</status_description> <message_infos> <message_info> <msisdn>78001234567</msisdn> <id>123456789</id> <status/> </message_info> </message_infos> </response>

Получение статусов сообщений

Механизм описан в разделе

Получение статусов сообщений

Прием ответов от абонентов

Чтобы появилась такая возможность, необходимо:

  • Зайти в настройки группы ВКонтакте, в раздел Управление -> Работа с API -> Callback API -> Настройки сервера.
    Скопировать значения:
    • цифровое значение из {"type": "confirmation", "group_id": 12345678}
    • значение из Строка, которую должен вернуть сервер: a1b2c3d4
    • если установлено, значение из Секретный ключ: a1b2c3d4...
  • В Личном кабинете, в разделе Профиль -> Настройки -> Настройка услуг -> ВКонтакте, в форме редактирования нужной группы.
    Вставить значения соответственно:
    • в параметр Идентификатор группы в системе ВКонтакте
    • в параметр Код проверки
    • в параметр Секретный ключ
  • В настройках группы, в ВКонтакте, указать адрес сервера https://auth.terasms.ru/vkMail_callback.php

Если настройка произведена правильно, то при отправке абоненту сообщения через нашу систему и при ответе на него абонентом, ответное послание будет сохранено с привязкой к исходному сообщению.
Все последующие ответы абонента будут относится к последнему исходному сообщению.

В Личном кабинете также есть настройки переадресации на ваш приёмник запросов, поступивших от ВКонтакте. Если указан адрес приёмника, то наша система может перенаправлять только ответы абонентов, все запросы от ВКонтакте, либо ничего не перенаправлять.

Также надо учесть, что отправленные абоненту сообщения не отображаются в диалоге в группе ВКонтакте, т.е. администратор группы не сможет увидеть то, что было отправлено абоненту. Для этого случая имеется настройка, которая дублирует исходное сообщение в диалоге при первом ответе абонента.
Для этого необходимо создать или скопировать существующий Ключ доступа с правами Сообщения сообщества в разделе Управление -> Работа с API и, затем, его вставить в поле Ключ API в настройкак ВКонтакте в Личном кабинете.

Запрос

Запрос можно формировать как GET, так и POST методами. Также возможен прием параметров в формате JSON.

В параметре message_id необходимо указать идентификатор сообщения, который был получен при отправке сообщения.

Пример запроса

> POST auth.terasms.ru/outbox/getMessageAnswers/json { "login": "login", "sign": "3e6eb14d4b7c06d77aecd92904d964c2", "message_id": "123456789" }

Ответ

Ответ возвращается только в формате JSON.

Пример ответа

{ "src_message" { "id":"123456789", "time":"2000-01-01 23:59:59", "msisdn":"78001234567" }, "answers": [ { "answer_id":"1", "answer_time":"2000-01-02 03:59:59", "answer_text":"Текст ответа 1" }, { "answer_id":"2", "answer_time":"2000-01-02 05:59:59", "answer_text":"Текст ответа 2" } ] }

Пример ответа с ошибкой

{ "error":"Исходное сообщение не найдено" }