
Compartilhar:
Karl é um Developer Advocate da Vonage, com foco na manutenção de nossos SDKs de servidor em Ruby e na melhoria da experiência dos desenvolvedores da nossa comunidade. Ele adora aprender, criar coisas, compartilhar conhecimento e tudo o que esteja relacionado à tecnologia da web em geral.
Proteja seus arquivos de mídia recebidos com a Messages API do Vonage
Tempo de leitura: 3 minutos
A API de mensagens da Vonage Messages API da Vanage permite conversas bidirecionais em diversos canais de mensagens. Muitos desses canais oferecem suporte ao envio e recebimento de arquivos de mídia, como imagens, áudio e Video.
Essas mensagens multimídia são extremamente úteis em uma ampla variedade de situações. Entre os exemplos, podemos citar um cliente que precise enviar a uma empresa um Video de um produto com defeito apresentando mau funcionamento ou imagens dos danos causados durante o transporte de uma entrega.
As mensagens recebidas são processadas por meio de um Webhook de mensagens recebidas. Para receber mensagens recebidas, primeiro é necessário configurar esse webhook. Isso pode ser feito no Painel da Vonage, seguindo estas etapas:
Criar um aplicativo da Vonage (caso ainda não tenha feito isso)
Nesse aplicativo:
Habilite essa função para a Messages API
Defina a URL de entrada como a URL que você deseja usar para receber suas mensagens
Vonage Dashboard Messages Application Inbound URL setting
Carga útil da mensagem recebida
As mensagens recebidas incluem uma carga JSON contendo detalhes da mensagem. Para mensagens do tipo texto, isso incluirá o próprio texto da mensagem, por exemplo:
{
"channel": "messenger",
"message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"to": "9876543210",
"from": "0123456789",
"timestamp": "2023-01-01T14:00:00.000Z",
"message_type": "text",
"text": "Hey there!"
}No caso de mensagens cujo tipo seja algum tipo de mídia, como imagem ou Video, essa mídia é armazenada nos servidores de mídia da Vonage, e a mensagem inclui uma URL exclusiva para acessar o arquivo de mídia, por exemplo:
{
"channel": "messenger",
"message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"to": "9876543210",
"from": "0123456789",
"timestamp": "2023-01-01T14:00:00.000Z",
"message_type": "image",
"image": {
"url": "https://api-us.nexmo.com/v3/media/1b456509-974c-458b-aafa-45fc48a4d976"
}
} Segurança Padrão
A mídia fica armazenada por apenas 48 horas, e você deve enviar uma solicitação GET para a URL específica fornecida na carga útil da mensagem recebida para acessar o arquivo de mídia. Por exemplo:
GET /v3/media/1b456509-974c-458b-aafa-45fc48a4d976
Host: api-us.nexmo.comO fato de ser necessário dispor da URL específica e de ela expirar após um determinado período oferece um certo grau de segurança inerente. No entanto, pode haver alguns riscos menores associados a esse nível de segurança; por exemplo, um ataque de força bruta poderia revelar a URL, e qualquer pessoa que a possuísse poderia acessar o arquivo de mídia sem precisar de credenciais adicionais.
Segurança aprimorada com mídia de entrada segura
Um nível maior de segurança pode ser desejável para casos de uso específicos, como uma situação de atendimento ao cliente em que o cliente precise enviar informações confidenciais na forma de imagem ou Video. É nesse contexto que a Messages API Recurso de Mídia de Entrada Segura pode ajudar!
Para ativar o recurso, no Painel de Controle da Vonage, edite a Application no qual você definiu a URL de entrada para o webhook e coloque o botão “Segurança Avançada de Mídia de Entrada” na posição “ativado”.
Vonage Dashboard Messages Application Enhanced Inbound Media Toggle
Com o recurso ativado, os webhooks de mensagens recebidas continuarão contendo uma URL para acessar a mídia. No entanto, agora a solicitação GET para acessar a mídia deve incluir um cabeçalho de autorização com o esquema “Bearer” e as credenciais sendo um JSON Web Token (JWT). O JWT deve ser gerado usando o ID do aplicativo e a chave privada do aplicativo da Vonage onde você definiu a URL do webhook de entrada. Por exemplo:
GET /v3/media/1b456509-974c-458b-aafa-45fc48a4d976
Host: api-us.nexmo.com
Authorization: Bearer eyJ0eXAiOiJKV1Qi...Com o recurso ativado, enviar uma solicitação GET para a URL da mídia sem um cabeçalho de autorização configurado corretamente resultará em uma resposta 401 Não autorizado.
Geração de JWTs
Você pode gerar um JWT por meio da nossa ferramenta online ou usando a CLI da Vonage. No contexto de um aplicativo de servidor, você pode usar um de nossos SDKs de servidor para gerar o JWT como parte do fluxo de trabalho geral do seu aplicativo. Veja abaixo um exemplo de geração de um JWT usando o SDK de servidor para Ruby.
require 'vonage'
jwt = Vonage::JWT.generate(
application_id: ENV['VONAGE_APPLICATION_ID'],
private_key: ENV['VONAGE_PRIVATE_KEY_PATH']
)(O exemplo pressupõe que 'VONAGE_APPLICATION_ID' e 'VONAGE_PRIVATE_KEY_PATH' estejam definidos como variáveis de ambiente na aplicação Ruby).
Próximos passos
O Secure Inbound Media é útil para seu aplicativo ou caso de uso? Então, por que não começar agora mesmo a usar as APIs da Vonage? Confira a documentação. Se tiver dúvidas ou sugestões, junte-se a nós no Slack para desenvolvedores da Vonage, e entraremos em contato com você.
Compartilhar:
Karl é um Developer Advocate da Vonage, com foco na manutenção de nossos SDKs de servidor em Ruby e na melhoria da experiência dos desenvolvedores da nossa comunidade. Ele adora aprender, criar coisas, compartilhar conhecimento e tudo o que esteja relacionado à tecnologia da web em geral.