VK#
Особенности VK-сообщений#
При отправке VK-сообщений следует учитывать следующие особенности:
Партнёр может отправлять текстовые сообщения длиной не более 2048 символов.
Сообщения могут содержать ссылки.
Сообщения отправляются от имени группы «ВКонтакте» произвольному пользователю «ВКонтакте» по его номеру телефона.
Партнёр может отправлять не более 50 сообщений в секунду от одной группы «ВКонтакте».
Партнёр может отправлять не более 5 сообщений в сутки одному пользователю от одной группы «ВКонтакте».
Все группы «ВКонтакте» и примеры текстов сообщений проходят предварительную модерацию с предъявлением договора на оказание услуг, товарного знака и прочих необходимых документов.
Сообщения доставляются в рамках времени жизни от 1 минуты до 24 часов. Время жизни сообщения настраивается на стороне Сервис-провайдера по согласованию с Партнёром.
Тарифицируются только доставленные сообщения.
Сообщения доставляются только активным пользователям «ВКонтакте». Активными пользователями считаются те, что заходили на сайт в течение последних 7 дней (мобильная или веб-версия социальной сети).
Для подключения сервиса отправки VK-сообщений, Партнёр должен дополнительно сообщить Сервис-провайдеру URL группы “ВКонтакте“ (от имени которой будет осуществляться отправка), а также предоставить примеры текстовых сообщений для модерации.
Запрос на отправку сообщений#
В HTTP API допустимы POST и GET запросы.
Примеры запросов#
POST-запрос с сообщением на латинице “test“ в простом текстовом формате.
{
POST /login HTTP/1.1
Host: 10.10.10.10:9080
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 58
serviceId=login&pass=123&clientId=79161234567&message=test
}
POST-запрос с текстом сообщения на кириллице “тест“ в URL-формате.
{
POST /login HTTP/1.1
Host: 10.241.0.194:9080
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 78
serviceId=login&pass=123&clientId=79161234567&message=%D1%82%D0%B5%D1%81%D1%82
}
GET-запрос с сообщением на латинице “test“ в простом текстовом формате.
{
http://partner.ru/login?clientId=79161234567&message=test&pass=123&serviceId=login
}
GET-запрос с текстом сообщения на кириллице “тест“ в URL-формате.
{
http://partner.ru/login?clientId=79161234567&message=%D1%82%D0%B5%D1%81%D1%82&pass=123&serviceId=login
}
Параметры запросов#
Параметры применимы для POST и GET запросов.
В таблице обязательные параметры выделены жирным шрифтом.
Параметр |
Тип |
Описание |
---|---|---|
clientId |
string |
Номер телефона абонента, до 25 символов.
Примеры: 79036550550, +79036550550, 8-903-655-05-50, 89036550550.
|
message |
string |
Текст сообщения в кодировке UTF-8.
Максимальная длина: 2048 символов.
|
serviceId |
string |
Идентификатор сервиса (логин), от имени которого происходит отправка сообщения. Логин serviceId заводится Сервис-провайдером при подключении сервиса и сообщается Партнёру. |
pass |
string |
Пароль для авторизации в сервисе. Пароль заводится Сервис-провайдером при подключении сервиса и сообщается Партнёру. |
ptag |
string |
Идентификатор сообщения в системе Партнёра.
Может содержать от одного до 50 символов.
Допустимые символы: 0…9a…zA…Z-
Это может быть любой идентификатор в системе Партнёра.
Примечание Например, уникальный идентификатор сообщения или идентификатор подразделения, инициирующего запрос на отправку. В отличие от параметра partnerMsgId, который нужен для контроля повторных отправок и дублирования, Сервис-провайдер не контролирует значения, переданные в параметре ptag (проверяется только соответствие формату). Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (этот функционал подробно описан в разделе «Сервис получения статусов доставки сообщений»). |
sending_time |
string |
Локальное время отправки сообщения абоненту.
Задается в формате hh_hh, где два значения часа задают временной
промежуток, в который должно быть отправлено сообщение.
Предупреждение Если параметр указан, то его значение не может быть пустым. Примечание Например, при значении параметра sending_time=10_20, сообщение будет отправлено в период с 10:00 до 20:00 по местному времени в часовом поясе абонента. Часовой пояс абонента определяется не по фактическому местоположению
абонента.
Если Партнёр не передает параметр time_zone, то часовой пояс абонента
определяется по номеру телефона.
Если Партнёр передает в параметре time_zone часовой пояс, то сообщение будет
отправлено абоненту по местному времени этого часового пояса.
|
time_zone |
string |
Часовой пояс абонента. Задается в формате ±hh:mm. Подробнее о формате см. ISO 8601. Если Партнёр передает в этом параметре часовой пояс, то сообщение будет отправлено абоненту по местному времени этого часового пояса, иначе часовой пояс абонента определяется по номеру телефона абонента. Примечание Абонент с хабаровским номером находится в Москве. Возможны следующие варианты отправки:
Для нулевой зоны обязательно указание знака, неважно «+» или «-«.
Знак «+» при кодировании URL преобразуется в «%2B».
Например, часовой пояс +04:00 передается так time_zone= %2B04:00.
|
source |
string |
Имя отправителя. Сообщение абоненту будет отправлено с сервисного имени, указанного в данном параметре. Данный параметр не является обязательным. Если параметр отсутствует в запросе, то сообщение будет отправлено абоненту с имени по умолчанию (настройка на стороне Сервис-провайдера). Важно Использование данного параметра недоступно для Партнёра по умолчанию. Функционал может быть включен после согласования с Сервис-провайдером. В этом случае для Партнёра настраивается список разрешенных имен отправителей, либо включается функционал динамической подписи. |
output |
string |
Формат ответа на запрос. Если output=xml, то ответ на запрос будет сформирован в виде XML (см. Ответ в формате XML). Если параметр не задан или имеет другое значение, будет применён формат по умолчанию: text/plain (см. Ответ на запрос). |
partnerMsgId |
string |
Уникальный идентификатор сообщения в системе Партнёра. Допустимая длина: от одного до 50 символов. Данный параметр используется для контроля повторных отправок и дублирования. Партнёр может отправить запрос на отправку сообщения с одним и тем же partnerMsgId несколько раз. При этом:
Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (См. Сервис получения статусов доставки). Использование данного параметра недоступно по умолчанию. Подключение данного функционала нужно согласовать со своим курирующим менеджером. |
shortenLinks |
boolean |
Параметр указывает, требуется ли сокращать ссылки в тексте сообщения. Важно Используется только для одиночных сообщений. В случае каскадной доотправки необходимо использовать параметр shorten_list (см. Каскадные сообщения). Важно Использование данного параметра недоступно по умолчанию. Подключение данного функционала необходимо согласовать со своим курирующим менеджером. Подробнее: Сервис сокращения ссылок. |
Ответ на запрос#
Примечание
Сервис-провайдер отправляет сообщения абонентам только при успешной обработке запроса.
Ответ при успешной отправке запроса#
На успешный запрос Сервис-провайдер возвращает Партнёру:
HTTP-код «200 OK»;
идентификатор сообщения в системе Сервис-провайдера.
{
OK
4095284974
}
Ответный код |
Описание |
Возможные действия Партнера |
---|---|---|
200 |
Успешная обработка запроса.
В теле ответа передаётся идентификатор, присвоенный
сообщению Сервис-провайдером.
Идентификатор представляет собой 64-битное целое
положительное число.
|
Штатная работа с сервисом. |
Ошибки при отправке запроса#
При передаче ошибочного запроса в теле ответа может возвращаться короткое текстовое сообщение об ошибке.
Пример ответа в случае возникновения ошибки неверного сочетания serviceId/pass:
{
Invalid password
}
Ответный код |
Описание |
Возможные действия Партнера |
---|---|---|
400 |
Отсутствуют обязательные параметры или они заданы некорректно. Например, не передан параметр message (там, где он необходим). |
Повторить запрос с правильным сочетанием параметров и их корректными значениями. |
401 |
Передано неверное сочетание параметров serviceId и pass. |
Повторить запрос с верными значениями параметров serviceId и pass. |
402 |
Исчерпан остаток оплаченных сообщений (для Партнёров, работающих по предоплате). |
Для возобновления отправки сообщений необходимо внести предоплату и обратиться к вашему курирующему менеджеру. Партнёр не должен повторять запрос. |
403 |
Сервис с переданным serviceId отсутствует или не активен. |
Следует обратиться к своему курирующему менеджеру. Партнёр не должен повторять запрос. |
406 |
Невозможно послать сообщение абоненту с переданным clientId. |
Партнёр не должен повторять запрос. |
408 |
Превышение допустимой скорости отправки сообщений. Примечание Для сервиса Партнёра установлена допустимая скорость 10 запросов в секунду. Партнёр отправил 12 запросов в секунду. Первые 10 запросов будут успешно обработаны: в ответ на эти запросы Сервис-провайдер вернет Партнёру статус 200 и отправит сообщения абонентам. В ответ на последние 2 запроса Сервис-провайдер вернет Партнёру статус 408 и не будет отправлять сообщения абонентам. |
Партнёр может повторить запрос, не превышая допустимой скорости. |
409 |
Запрещена отправка дубликатов. Примечание Для сервиса Партнёра включен функционал блокировки дубликатов. Партнёр отправил в течении суток три запроса для отправки сообщения на один номер с одинаковым текстом. Первый запрос будет успешно обработан и сообщение будет отправлено абоненту. В ответ на последние два запроса Сервис-провайдер вернет Партнёру статус 409 и не будет отправлять эти два сообщения абоненту. Функционал блокировки дубликатов по умолчанию отключен для Партнёра. Функционал может быть включен по просьбе Партнёра. Также Сервис-провайдер может включить функционал блокировки дубликатов для Партнёра при необходимости: например, в ответ на жалобы абонентов. |
Партнёр не должен повторять запрос. При необходимости отправки дубликата сообщения, Партнёр может обратиться в службу техподдержки Сервис-провайдера, предоставив наиболее полную информацию об условиях возникновения данной ситуации. |
414 |
Превышение допустимой длины текста сообщения, переданного в параметре message. |
Партнёр может повторить запрос, сократив текст сообщения до допустимой длины. |
500 |
Внутренняя ошибка сервера. Технические проблемы на стороне Сервис-провайдера. |
При получении статуса 500 или при истечении тайм-аута ожидания ответа, Партнёр должен выдержать паузу минимум 1 минуту. По истечении паузы Партнёр может повторить запрос. При получении статуса 500 более 10 раз необходимо прекратить передачу запроса. После чего передать в службу техподдержки Сервис-провайдера наиболее полную информацию б условиях возникновения данной ошибки для дальнейшего анализа. |
503 |
Запрос в обработке. Ошибка может возникнуть, если Партнёр практически одновременно передает несколько запросов с одним и тем же значением параметра partnerMsgId. Пока не обработан первый запрос на следующие запросы с тем же partnerMsgId Сервис-провайдер вернет Партнёру статус 503. |
Партнёр должен выдержать паузу и подождать ответ на первый запрос с переданным значением параметра partnerMsgId. Партнёр может повторить запрос, если не получит ответ на первый запрос. |
Ответ в формате XML#
200 – запрос успешно обработан;
500 – внутренняя ошибка сервера, технические проблемы на стороне Сервис-провайдера.
Примеры ответов#
{
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>200</code>
<text>OK</text>
<payload>
<id>4095284976</id>
</payload>
</response>
}
Пример ответа в формате XML при ошибочной отправке запроса: неверное сочетание serviceId / pass.
{
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>401</code>
<text>Invalid password</text>
</response>
}
При получении статуса 500 или при истечении тайм-аута ожидания ответа, Партнёр должен выдержать паузу минимум 1 минуту. По истечении паузы Партнёр может повторить запрос.
Примечание
При получении статуса 500 более 10 раз необходимо прекратить передачу запроса. После чего передать в службу техподдержки Сервис-провайдера наиболее полную информацию об условиях возникновения данной ошибки для дальнейшего анализа.
В таблице обязательные параметры выделены жирным шрифтом.
Наименование |
Описание |
Примечание |
---|---|---|
xml version |
Номер версии XML. |
Содержится в прологе XML-документа. |
encoding |
Кодировка. |
Содержится в прологе XML-документа. |
response |
Корневой элемент, содержит элементы code, text, payload. |
|
code |
Код ответа (значения соответствуют HTTP-кодам для ответов с типом text/plain). |
Подробное описание этих кодов приведено выше. |
text |
Дополнительная краткая текстовая информация об ответе. |
Может содержать информацию об ошибке. |
payload |
Информация о сообщении, содержит элемент id. |
Передаются только в случае успешного выполнения запроса (при значении code=200). |
id |
Идентификатор, присвоенный сообщению Сервис-провайдером. Идентификатор представляет собой 64-разрядное целое положительное число. |
Правила модерации сети «Вконтакте»#
Настоящие правила модерации применяются ко всем шаблонам сообщений, направляемым на согласование для дальнейшей рассылки пользователям проектов Mail.Ru Group. Модерацию проходит отправитель (компания) и текст (шаблон) сообщения.
При проверке компании принимается во внимание отрасль к которой относится компания, тип компании, ее репутация на рынке. К рассмотрению не принимаются сообщения от следующих компаний:
Микрофинансовые организации.
Коллекторские агентства (в том числе соответствующие отделы банков).
Букмекерские конторы.
Online казино.
Ювелирные магазины.
Производители сигарет.
Производители лекарственных препаратов.
Производители алкогольной продукции.
При модерации текста действуют следующие правила:
К рассмотрению не принимаются тексты рекламного характера. Рекламой признаются любые сообщения, адресованные неопределенному кругу лиц и направленные на привлечение внимания к объекту рекламирования, формирование или поддержание интереса к нему и его продвижение на рынке.
В случае, если шаблон сообщения, поданного на модерацию, содержит и сервисную составляющую, и рекламную, он не проходит модерацию.
Все шаблоны сообщений должны отвечать требованиям законодательства Российской Федерации и законодательству той страны, в которой находятся пользователи, которым адресуется сообщение, а также существующим этическим нормам и принципам (шаблоны не должны содержать сообщений, оскорбляющих человеческое достоинство, пропагандирующих насилие, расовую или национальную вражду и т.п.).
Шаблоны сообщений не могут содержать информацию прямо или косвенно компрометирующую Mail.Ru Group и все проекты и продукты, входящие в состав группы компаний, а также в шаблонах сообщений не должна содержаться информация, которая может рекламировать продукты, конкурирующие по ценовым или потребительским свойствам с услугами и сервисами, оказываемыми проектами и сервисами Mail.Ru Group.
Шаблоны сообщений должны содержать исключительно информацию, которая касается взаимодействия пользователя с владельцем официальной группы, от имени которой происходит отправка сообщения.
Шаблоны сообщений должны содержать информацию исключительно в отношении заказов и/или действий пользователей, совершенных непосредственно перед отправкой информационного сообщения.
Наличие ссылок на веб-страницы и сайты в шаблонах сообщений допускается только по индивидуальному согласованию.