Приветствую! Пишу бота на C# для Одноклассников и столкнулся с такой проблемой: сообщение с вложением не отправляется, возвращая ошибку о неправильном формате Json.
В идеале я хочу отправлять сообщение с текстом и клавиатурой(набором кнопок) в качестве вложения.
Вот мой код:
var requestParams = new
{
recipient = new { chat_id = chatId },
message = new
{
text = "Текст",
attachment = new
{
Type = "INLINE_KEYBOARD",
payload = new
{
keyboard = new
{
buttons = new[]
{
new[]
{
new
{
type = "CALLBACK",
text = "Button",
intent = "DEFAULT",
payload = "Button"
}
}
}
},
callbackId = "16ef50d9a4e00c516ef50d9a4e00c516ef50d9a4e00c5"
}
}
}
};
string requestUrl = s_baseUrl + "/me/messages/" + chatId + "?access_token=" + _token;
string requestParamsJson = JsonConvert.SerializeObject(requestParams);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, requestUrl);
request.Content = new StringContent(requestParamsJson,
Encoding.UTF8,
"application/json");
var response = await _httpClient.SendAsync(request)
.ContinueWith(responseTask => responseTask.Result.EnsureSuccessStatusCode());
string responseContentJson = await response.Content.ReadAsStringAsync();
В данном примере s_baseUrl = "
https://api.ok.ru/graph"
Откуда брать callbackId не совсем понятно, в примере выше взят из
документации. Но что с ним, что без него(с пустой строкой) в ответ я получаю Json с ошибкой:
{
"error_code": 2001,
"error_msg": "GRAPH_PARAM_REQUEST : Wrong JSON format.",
"error_data": null
}
Притом без вложения, только с текстом, сообщение отправляется, но стоит добавить любое вложение(не обязательно клавиатуру) и я получаю ошибку. Даже если взять пример напрямую из документации и скопировать Json отправки картинки(заменив chat_id, естественно):
{
"recipient":{"chat_id":"chat:C3ecb9d02a600"}, /* ID чата в формате chat:id */
"message":{ /* Содержание сообщения */
"attachment":{
"type":"IMAGE",
"payload":{"url":"https://st.mycdn.me/res/i/ok_logo.png"} /* URL изображения в формате jpg или png */
}
}
}
Всё равно получаю вышеописанную ошибку.
Подскажите, пожалуйста, в чём может быть дело? Уже все Json'ы по 10 раз перепроверил.
Заранее спасибо!