POST graph.message.edit
Редактирование сообщения
Внимание! POST-запросы должны выполняться с заголовком Content-Type: application/json;charset=utf-8
Данный метод позволяет полностью отредактировать содержание сообщения.
Пример запроса
?access_token=tkn18YdUJZe:CQABPOJKAKEKEKEKE
Тело запроса
В теле запроса указывается новый контент сообщения, на который будет полностью заменено это сообщение.
Общий формат сообщения
{
"message": {
"text": "String", /* Текст сообщения */
"attachment": {
"type": "IMAGE|VIDEO|AUDIO|SHARE|FILE|CONTACT|INLINE_KEYBOARD|LOCATION|MUSIC|CALL|PRESENT|STICKER", /* тип аттачмента */
"payload": AttachmentPayload /* содержание аттачмента, зависит от типа аттачмента */
}, /* единственный аттачмент в сообщении */
"attachments": [{
"type": "IMAGE|VIDEO|AUDIO|SHARE|FILE|CONTACT|INLINE_KEYBOARD|LOCATION|MUSIC|CALL|PRESENT|STICKER",
"payload": AttachmentPayload
}], /* список аттачментов в сообщении */
"privacyWarning": "SCREENSHOT|SCREENCAST",
"reply_to": "MID:" /* id сообщения, ответом на которое является текущее сообщение */
}
}
Аттачменты
Сообщение может содержать как одно, так и несколько (до 5ти) аттачментов следующего типа:
- IMAGE - изображение;
- VIDEO - видео;
- AUDIO - аудиозапись;
- SHARE - решара контента в ОК;
- FILE - файл любого формата;
- CONTACT - контакт пользователя;
- INLINE_KEYBOARD - список кнопок действий;
- LOCATION - место;
- MUSIC - музыкальный трек в ОК;
- CALL - информация о видео-/аудиозвонке;
- PRESENT - подарок в ОК;
- STICKER - стикер.
В зависимости от типа аттачмента у него могут быть разные payload.
IMAGE
Изображение.
{
"id": "imageId",
"token": "imageToken",
"url": "https://image.url"
}
Аттачмент можно создать следующими способами:
- указать токен полученный из данных существующего сообщения с аттачментом
- указать токен полученный в процессе загрузки изображения с помощью метода GET graph.user.fileUploadUrl
{
"token": "imageToken"
}
- указать ссылку на изображение, но только 1 такое изображение может быть в запросе
{
"url": "https://image.url"
}
VIDEO
Видео.
{
"id": "videoId",
"token": "videoToken",
"url": "https://video.url"
}
Аттачмент можно создать следующими способами:
- указать токен полученный из данных существующего сообщения с аттачментом
- указать токен полученный в процессе загрузки видео с помощью метода GET graph.user.fileUploadUrl
{
"token": "videoToken"
}
AUDIO
Аудио.
{
"id": "audioId",
"token": "audioToken",
"url": "https://audio.url"
}
Аттачмент можно создать следующими способами:
- указать токен полученный из данных существующего сообщения с аттачментом
- указать токен полученный в процессе загрузки аудио с помощью метода GET graph.user.fileUploadUrl
{
"token": "audioToken"
}
FILE
Файл любого формата.
{
"id": "fileId",
"token": "fileToken",
"url": "https://file.url"
}
Аттачмент можно создать следующими способами:
- указать токен полученный из данных существующего сообщения с аттачментом
- указать токен полученный в процессе загрузки аудио с помощью метода GET graph.user.fileUploadUrl
{
"token": "fileToken"
}
SHARE
Решара какого-либо контента, уже опубликованного в ОК. Это могут быть, например группы, публикации групп и пользователей, изображения и т.д.
{
"id": "123456789",
"url": "https://ok.ru/group123456789/topic/123456789"
}
Создание аттачмента этого типа через ботапи не поддерживается
CONTACT
Контакт пользователя ОК.
{
"id": "123456789", /* идентификатор пользователя */
"name": "firstName lastName", /* имя пользователя */
"photoUrl": "https://photo.url", /* ссылка на фото пользователя */
"phone": "79493344555", /* номер телефона пользователя */
"vcfBody": "..." /* электронная визитная карточка vCard */
}
Аттачмент можно создать следующими способами:
- указать идентификатор пользователя
{
"id": "123456789"
}
- указать данные электронной визитной карточки vCard
{
"vcfBody": "..."
}
LOCATION
Местоположение пользователя.
{
"latitude": 59.928658,
"longitude": 30.38113,
"altitude": 1.0000,
"epu": 1.0000,
"heading": 1.0000,
"speed": 1.0000,
"zoom": 1.0000,
"livePeriod": 600 /* время, в течение которого пользователь будет делиться живой локацией, в секундах */
}
Аттачмент можно создать следующим способом:
- указать координаты latitude и longitude (остальные поля опциональны)
{
"latitude": 59.928658,
"longitude": 30.38113
}
MUSIC
Музыкальный трек, загруженный в ОК.
{
"id": "23486020457601",
"url": "https://ok.ru/music/track/23486020457601"
}
Аттачмент можно создать следующим способом:
- указать идентификатор трека
{
"id": "23486020457601"
}
CALL
Видео-/аудиозвонок в ОК.
{
"id": "23486020457601", /* идентификатор звонка */
"type": "AUDIO|VIDEO", /* тип звонка */
"hangupType": "CANCELED|REJECTED|HUNGUP|MISSED" /* тип завершения звонка */
"duration": 10 /* длительность звонка */
}
Создание аттачмента этого типа через ботапи не поддерживается
PRESENT
В данный момент данный тип приложения не поддерживается
Подарок в ОК.
{
"id": "23486020457601", /* идентификатор подарка */
"status": "SENT", /* статус подарка */
"receiverId": "USER:12345678901", /* id получателя */
"senderId": "USER:12345678902" /* id отправителя */
}
Создание аттачмента этого типа через ботапи не поддерживается
STICKER
Стикер в ОК.
{
"id": "c23a918ef4",
"url": "https://i.mycdn.me/getSmile?smileId=c23a918ef4"
}
Аттачмент можно создать следующим способом:
- указать идентификатор стикера
{
"id": "c23a918ef4"
}
INLINE_KEYBOARD
Список кнопок действий.
В данный момент кнопки с типом REQUEST_GEO_LOCATION и REQUEST_CONTACT не поддерживаются на всех платформах ОК
{
"keyboard": {
"buttons": [
[
{
"type": "CALLBACK", /* тип кнопки */
"text": "someText", /* текст кнопки */
"intent": "DEFAULT|POSITIVE|NEGATIVE", /* окрас кнопки */
"payload": "callbackPayload" /* текст сообщения, отправляемого после нажатия на кнопку */
}
],
[
{
"type": "LINK",
"text": "someText",
"intent": "DEFAULT|POSITIVE|NEGATIVE",
"url": "https://some.url" /* ссылка, открываемая по нажатию на кнопку */
}
],
[
{
"type": "REQUEST_CONTACT",
"text": "someText",
"intent": "DEFAULT|POSITIVE|NEGATIVE"
},
{
"type": "REQUEST_GEO_LOCATION",
"text": "someText",
"intent": "DEFAULT|POSITIVE|NEGATIVE",
"quick": true
}
]
]
},
"callbackId": "16ef50d9a4e00c516ef50d9a4e00c516ef50d9a4e00c5" /* идентификатор коллбека */
}
Список кнопок (или т.н. клавиатура) это достаточно сложная структура, позволяющая производить действия по нажатию на кнопку, а не через ручную отправку сообщения.
Список кнопок представляет из себя двумерный массив объектов. Можно указывать как по одной кнопке на каждой строке, так и по несколько кнопок в одну строку.
Есть несколько видов кнопок (параметр type):
- CALLBACK - стандартный вид кнопки, предполагает, что по нажатию от лица пользователя будет отправлено сообщение;
- LINK - кнопка-ссылка, по нажатию на неё открывается указанная ссылка;
- REQUEST_CONTACT - запрос шаринга контакта пользователя;
- REQUEST_GEO_LOCATION - запрос шаринга локации пользователя.
Пример ответа
{
"success": true
}