Respondido

Como realizar um filter pelo identity do Atendente no metodo /attendants


Reputação 4

Boa tarde pessoal, estou tentando utilizar uma solução dada pelo @Luis_Araujo em uma outra postagem (Mostrar tempo médio de espera para o usuário - #16 por GabrielPetrone).


Seria basicamente fazer um get no metodo /attendants passando como filtro o e-mail do atendente.


Testei dessa forma:


{
"id": "{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "/attendants?$filter=(identity%20eq%20'vcandido%40vertigo.com.br%40blip.ai')"
}

Porém estou obtendo erro:



code": 67,

“description”: “The requested resource was not found”



Alguém consegue me ajudar?

icon

Melhor resposta por GabrielPetrone 29 April 2022, 21:16

Veja o original

6 comentários

Reputação 7
Crachá +1

Boa tarde @Vinicius_Candido .

Você está passando qual URL na requisição?

E o Token no cabeçalho é o token do Bot de Atendimento, certo? (não pode ser o token do Router caso utilize estrutura com roteadores).

Reputação 4

Olá @GabrielPetrone, boa tarde, obrigado pela resposta.

Estou passando a url https://“nomedocliente”.http.msging.net/commands (Coloquei assim pra não expor o cliente)


Cabeçalhos:

Token do bot de atendimento, correto! e Content-Type: application/json


Apenas como info, se eu utilizar somente:


{
"id": "{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "/attendants"
}

Me retorna todos os atendentes certinho 🙂

Somente quando tento com o filter:

?$filter=(identity%20eq%20'vcandido%40vertigo.com.br%40blip.ai')"


Que ele me retorna o erro

Reputação 7
Crachá +1

Hmm certo, entendi!


Eu fiz um teste aqui e tive o mesmo resultado, mas a grande questão é que o parâmetro filter não funciona para este endpoint. Então mesmo que esteivesse correto a forma que você passou o parâmetro, o endpoint vai reportar “The requested resource was not found” por não existe uma opção de filtro pra este caso.


Mas você pode fazer um filtro utilizando Scripts a partir do resultado do retorno da API.


Só um pequeno detalhe do seu filtro (caso funcionasse o filtro nessa API), você precisaria passar assim:

?$filter=(identity%20eq%20'vcandido%[email protected]')"

O último @ precisa ser @ mesmo, ao invés de encodá-lo.

Mas reforçando que isso não vai resolver a questão.


Abraços.

Reputação 4

Entendi Gabriel, tranquilo então, essa tratativa com o script logo em seguida eu já tenho aqui. Queria simplificar, perguntei pois vi esse comentário (Mostrar tempo médio de espera para o usuário - #16 por GabrielPetrone) do @Luis_Araujo e achei que seria uma ótima opção pro meu caso aqui, pra evitar um script.


Obrigado pela disposição de testar ai pra nós, um abraço!!

Reputação 7
Crachá +1

Opa @Vinicius_Candido , eu não me atentei a este tópico mas que bom que você reforçou aqui.

Diante disso eu pedi uma mão pro mestre @Luis_Araujo e ele conseguiu passar o segredo 🔑.


Seguinte, você precisa encodar o e-mail duas vezes e vai ser sucesso, pra isso, é só utilizar esse modelo aqui:


$filter=(identity%20eq%20'vcandido%2540vertigo.com.br%40blip.ai')"


Faça um teste e veja se resolve aí. Aqui agora foi com o endereço filtrado 😉

Top demais!

Reputação 4

Opaaa! Show de bola! Funcionou perfeitamente!


Valeu @GabrielPetrone e @Luis_Araujo.


Abraços pessoal!

Comente