[Resolvido] Alterar CHATSTATE atraves do Application Json


#1

Boa tarde.

Estou criar um chatbot via SDK .Net

Meus fluxos de conversas e estados ficam todos no application json.

Eu estou querendo alterar o chatstate via json, tem como fazer isso?

https://docs.blip.ai/#chat-state <- ChatState


#2

Olá @William_Goncalves,

é possível utilizar ChatState como um conteúdo do application.json sim.
Para que eu consiga te ajudar melhor me explique um pouco melhor qual a sua necessidade.

Você deseja enviar um ChatState e um outro conteúdo, junto, quando o usuário atingir um determinado receiver?

Aproveitando a oportunidade, deixo aqui um exemplo de um bot criado utilizando SDK C# e que usa apenas o arquivo application.json.


#3

"Você deseja enviar um ChatState e um outro conteúdo, junto, quando o usuário atingir um determinado receiver?"

Exatamente isso @rafaelpa.

Se tiver um exemplo fico grato. A nossa estrutura está seguindo o mesmo padrão deste exemplo que você deu.


#4

@William_Goncalves,

toda mensagem do BLiP possui sempre um único conteúdo.
Para resolver esse tipo de problema (enviar, de uma única vez, mais de um conteúdo) é necessário utilizar 2 conteúdos especiais, Collection e Container (veja esse link para mais detalhes).

Basicamente, uma coleção permite que você envie um ou mais elementos de um tipo de conteúdo. Para enviar conteúdos diferentes através de uma coleção é necessário ‘envelopar’ os conteúdos através do tipo container. Veja abaixo o exemplo que você precisa:

1 Collection com dois Containers, sendo 1 para o ChatState e 1 para um texto

"response": {
  "mediaType": "application/vnd.lime.collection+json",
  "jsonContent": {
{
  "itemType": "application/vnd.lime.container+json",
  "items": [
    {
      "type": "application/vnd.lime.chatstate+json",
      "value": {
        "state": "composing"
      }
    },
    {
      "type": "text/plain",
      "value": "Texto de exemplo"
    }
  ]
}
  }
}

*Obs.: Apesar de ser possível, essa não é uma abordagem muito interessante. Você perceberá que o bot enviará os dois elementos praticamente de forma simultânea, o que não dará ao usuário final uma boa experiência com o tipo de conteúdo digitando.