Olá, Blippers,
Estou atualmente fazendo um teste com o Blip Chat e o SDK JS do Blip, tentando pegar as informações passadas no ‘withAccount’ no ato de contato entre o usuário e o Blip Chat.
O meu código do Widget está conforme o padrão:
window.onload = function () {
var builder = new BlipChat()
.withAppKey('<Chave de acesso>')
.withButton({
color: '#F00'
})
.withAuth({
authType: BlipChat.DEV_AUTH,
userIdentity: <CPF>,
userPassword: <PASSWORD>,
})
.withAccount({
fullName: 'John Doe',
email: '[email protected]',
phoneNumber: '+15055034455',
city: 'Decatur',
})
.withEventHandler(BlipChat.ENTER_EVENT, function () {
console.log('enter')
})
.withEventHandler(BlipChat.LEAVE_EVENT, function () {
console.log('leave')
})
.withEventHandler(BlipChat.LOAD_EVENT, function () {
console.log('chat loaded')
})
.withEventHandler(BlipChat.CREATE_ACCOUNT_EVENT, function () {
console.log('account created')
// NO ATO DA CRIAÇÃO DA CONTA, ESSA FUNÇÃO É CHAMADA
})
builder.build()
Ao abrir o chat, a função 'console.log(‘account created’) é chamada com sucesso.
Visto que ele foi criado, mando um “oi”. No outro lado, servidor Node.js, somente um identificador desse usuário vêm no corpo da mensagem, no ‘message.from’.
Com essa informação, testei com o cURL (para entender melhor antes de automatizar) a API de vocês. Tentando pegar as informações desse usuário recém cadastrado, visando cadastrá-lo em um banco de dados. Utilizei a seguinte instrução:
curl --request POST \
--header 'Content-Type:application/json' \
--header 'Authorization: Key <Cabeçalho de autenticação>' \
--data '{"id": "<ID>", "method": "get","uri": "/contacts/<CPF>.<Identificador>@0mn.io"}' \
https://msging.net/commands
E como resposta obtive o descrito abaixo. Gostaria de saber o que ela significa: o Usuário com não foi encontrado?
{"method":"get","status":"failure",
"reason":{"code":67,"description":"The requested resource was not found"}
"id":"<ID>","from":"[email protected]/#az-iris2","to":"<Identificador>@msging.net",
"metadata":{"#command.uri":"lime://<Identificador>@msging.net/contacts/<CPF>.<Identificador>@0mn.io"}
}
Observação: Simulei também o cadastro do usuário pelo cURL, enviando o comando abaixo. A criação ocorreu com êxito e, após, a mesma consulta acima também teve êxito e retornou os dados do resource do usuário.
curl --request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Key <Cabeçalho de autenticação>' \
--data '{"id": "<ID>", "method": "set","uri": "/contacts","type": "application/vnd.lime.contact+json",
resource": {"identity": "<CPF>[email protected]", "name": "John Doe 2"} }' \
https://msging.net/commands
Dúvida: quando, em outro exemplo utilizando o Builder, um usuário interagia com o chatbot, notei que automaticamente ele já se cadastrava e ficava disponível na aba de Usuários (dentro da Dashboard de administração). Até aqui tudo bem. Porém, utilizando o SDK, isso não está ocorrendo. Isso é o padrão mesmo?
Dúvida: utilizando o SDK ao invés do Builder, devo criar manualmente os usuários que interagem com a minha Widget do chatbot?