Не получается отправить ответ в viber ASP.NET CORE

96
13 июня 2021, 10:10

Нужно отправить обратный ответ при событии conversation_started, не пойму как правильно отправить, не приходит сообщение в viber. В postman отправлял json и в качестве ответа он возвращает json. Как указано здесь - https://developers.viber.com/docs/api/rest-bot-api/#sending-a-welcome-message Возможно, я не правильно понял, как отправить ответ. Не знаю, как сделать правильно, если знаете - пишите. Спасибо.

П.С. В данном примере я не использую фильтр, чтобы поймать какое событие пришло, оно и с фильтром также не работало.

На последней картинке это ответ моего сервера.

Answer 1

Если кто-то попадет в такую же ситуацию с адским вайбером. Что вайбер тупит и не принимает мой ответ на событие "conversation_started" и не публикует сообщение. И вариант работы такой, что сообщение можно отправить на это событие просто, как обычное сообщение, но один раз, если клиент не подписался. В документации все обратное, они отрицают, что нельзя отправлять, если не подписан, а на событие "conversation_started" нужно отправлять ответом json. Будет примерно так, насколько я знаю.

    [HttpPost]
    public async Task<IActionResult> Post([FromBody] JObject data)
    {
       Message.Result = JsonConvert.SerializeObject(data);
        //Task<string> dataToString = Task.Run(() => JsonConvert.SerializeObject(data));
        //Task<CallBack> callBack = Task.Run(() => JsonConvert.DeserializeObject<CallBack>(dataToString.Result));
      string dataToString = JsonConvert.SerializeObject(data);
       Task<CallBack> callBack =Task.Run(() => JsonConvert.DeserializeObject<CallBack>(dataToString));
        await Task.Run(() => Initialization.CallBackInitializationAsync= callBack);

        // Message.Result= Request.Headers["X-Viber-Content-Signature"];
        if (callBack.Result.Event == EventType.ConversationStarted)
        {
            viber = new Viber(callBack.Result);
            viber.Start();
            await viber.SendTextMessageAsync();
        }
        return Ok();
    }
READ ALSO
Доступ к переменной из другого метода. Unity 5.6.6, C#

Доступ к переменной из другого метода. Unity 5.6.6, C#

Как получить доступ к переменной из другого метода?

90
NodeJs. Sequelize. Unsupported time zone specified undefined

NodeJs. Sequelize. Unsupported time zone specified undefined

С самого начала проект работал, все было хорошо, и в 1 момент при перезапуске получаю такую ошибку

86
Интеграция Spring Reactive с Spring MVC + MySQL

Интеграция Spring Reactive с Spring MVC + MySQL

Пытаюсь разобраться, могу ли я использовать Spring Reactive (Flux/Mono) вместе с Spring MVC ? Структура микросервисы с использованием Spring MVC + Feign Client, Eureka Server...

99