Pular para o conteúdo

API de Mensagens

createMessage

Anchor link to

POST https://api.pushwoosh.com/json/1.3/createMessage

Cria uma nova notificação push.

Corpo da Solicitação

Anchor link to
NomeTipoDescrição
auth*stringToken de acesso à API do Painel de Controle da Pushwoosh.
application*stringCódigo da aplicação Pushwoosh
notifications*arrayArray JSON de parâmetros da mensagem. Veja detalhes em um exemplo de solicitação abaixo.
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"C3F8-C3863ED4-334AD4F1"
]
}
}

Exemplo de solicitação

Anchor link to
Exemplo
{
"request": {
"application": "XXXXX-XXXXX", // obrigatório. Código da aplicação Pushwoosh.
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh.
"notifications": [{
"send_date": "now", // opcional. AAAA-MM-DD HH:mm OU 'now'
"content": { // opcional. objeto OU string.
"en": "English", // Use "wns_content" em vez disso para Windows.
"fr": "French"
},
"title": { // opcional. objeto OU string.
"en": "Title", // Ignorado se títulos específicos da plataforma forem especificados
"fr": "Titre" // 'ios_title', 'android_header', etc.
}, // veja os exemplos de parâmetros específicos da plataforma abaixo.
"subtitle":{ // opcional. objeto OU string.
"en": "Subtitle", // Ignorado se títulos específicos da plataforma forem especificados
"fr": "Sous-titre" // 'ios_subtitle', etc.
}, // veja os exemplos de parâmetros específicos da plataforma abaixo.
"ignore_user_timezone": true, // opcional.
"timezone": "America/New_York", // opcional. Se ignorado, UTC-0 é o padrão para "send_date".
// Veja https://php.net/manual/timezones.php para
// fusos horários suportados.
"campaign": "CAMPAIGN_CODE", // opcional. Código da campanha à qual você deseja
// atribuir esta mensagem push.
"geozone": { // opcional. Enviar para Geozone
"lat": 22.22,
"lng": 33.33,
"range": 110
},
"rich_media": "XXXXX-XXXXX", // opcional. Copie o código de Rich Media da barra de URL
// da página do editor de Rich Media no Painel de Controle da Pushwoosh.
"link": "https://google.com", // opcional. Para deeplinks, adicione "minimize_link": 0
"minimize_link": 0, // opcional. 0 — não minimizar, 2 — bitly. Padrão = 2.
// Por favor, note que os encurtadores têm restrições
// no número de chamadas.
"data": { // opcional. String JSON ou objeto JSON, será passado como
"key": "value" // parâmetro "u" no payload (convertido para string JSON).
},
"transactionId": "unique UUID", // opcional. Identificador de mensagem único para evitar duplicação
// em caso de problemas de rede. Armazenado no lado
// da Pushwoosh por 5 minutos.
"platforms": [ // opcional. 1 — iOS; 3 — Android; 7 — Mac OS X; 8 — Windows;
1, 3, 7, 8, 9, 10, // 9 — Amazon; 10 — Safari; 11 — Chrome;
11, 12, 17 // 12 — Firefox; 17 — Huawei
],
"preset": "XXXXX-XXXXX", // opcional. Código do Preset de Push do seu Painel de Controle.
// Se parâmetros específicos forem enviados na solicitação,
// eles substituem os parâmetros do preset.
"send_rate": 100, // opcional. Limitação de taxa. Valores válidos são de 100 a 1000 pushes/segundo.
"send_rate_avoid": true, // opcional. Se definido como true, o limite de limitação de taxa não será aplicado a
// esta notificação push específica.
// Relacionado a templates, por favor, consulte o guia do Template Engine para saber mais
"template_bindings": { // opcional.
"TemplatePlaceholder": "Value"
},
"dynamic_content_placeholders": { // opcional. Placeholders para conteúdo dinâmico em vez de tags de dispositivo.
"firstname": "John",
"lastname": "Doe"
},
// Parâmetros de limitação de frequência. Certifique-se de que a limitação de frequência Global esteja configurada no Painel de Controle.
"capping_days": 30, // opcional. Quantidade de dias para limitação de frequência (máx 30 dias)
"capping_count": 10, // opcional. O número máximo de pushes que podem ser enviados de um
// aplicativo específico para um dispositivo particular dentro de um período de 'capping_days'.
// Caso a mensagem criada exceda o
// limite de 'capping_count' para um dispositivo, ela não
// será enviada para esse dispositivo.
"capping_exclude": true, // opcional. Se definido como true, esta notificação push não
// será contada para a limitação de futuros pushes.
"capping_avoid": true, // opcional. Se definido como true, a limitação não será aplicada a
// esta notificação push específica.
// Para salvar a mensagem na Caixa de Entrada via API, use "inbox_date" ou "inbox_image".
// A mensagem é salva quando pelo menos um desses parâmetros é usado.
"inbox_date": "2017-02-02", // opcional. Especifique quando remover uma mensagem da Caixa de Entrada.
// A mensagem será removida da Caixa de Entrada às 00:00:01 UTC
// da data especificada, então o dia anterior é o
// último dia que um usuário pode ver a mensagem em sua Caixa de Entrada.
// Se não especificado, a data de remoção padrão é o
// dia seguinte à data de envio.
"inbox_image": "Inbox image URL", // opcional. A imagem a ser mostrada perto da mensagem.
"inbox_days": 5, // opcional. Especifique quando remover uma mensagem da
// Caixa de Entrada (tempo de vida de uma mensagem na caixa de entrada em dias).
// Pode ser usado em vez do parâmetro "inbox_date".
// Até 30 dias.
"devices": [ // opcional. Especifique tokens ou hwids para enviar pushes direcionados
"hwid_XXXX" // notificações. Não mais que 1000 tokens/hwids em
], // um array. Se definido, a mensagem só será enviada para
// os dispositivos na lista. Grupo de Aplicações para lista de dispositivos
// não é permitido. Tokens de push do iOS só podem estar em minúsculas.
"to": [ // opcional. Para e-mail, SMS e canais similares. Lista de destinatários
"email_1", "email_2" // (ex: endereços de e-mail, números de telefone). Máx 1000 itens.
], // Para push, use "devices" em vez disso.
// Notificações push centradas no usuário
"users": [ // opcional. Se definido, a mensagem só será entregue aos
"user_XXXX" // IDs de usuário especificados (definidos via chamada /registerUser).
], // Se especificado junto com devices ou to,
// os últimos serão ignorados. Não mais que 1000
// IDs de usuário em um array. Grupo de Aplicações para lista de usuários
// não é permitido.
// Filtros e condições
"filter": "FILTER_NAME", // opcional.
"conditions": [ // opcional. Veja a observação abaixo.
["Country", "EQ", "fr"],
["Language", "EQ", "en"]
],
"conditions_operator": "AND" // opcional. Operador lógico para arrays de condições.
// Valores possíveis: AND | OR. AND é o padrão.
}]
}
}

Exemplo de solicitação de notificação VoIP

Anchor link to

A Pushwoosh suporta notificações de chamada no estilo VoIP para iOS e Android.
Abaixo você pode encontrar exemplos de solicitações API createMessage para cada plataforma.

Exemplo
{
"request": {
"application": "XXXXX-XXXXX", // obrigatório. Código da aplicação Pushwoosh.
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh.
"notifications": [
{
"voip_push": true, // obrigatório. Parâmetro é necessário para enviar uma notificação push VoIP.
"ios_root_params": {
"aps": {
"mutable-content": 1 // obrigatório para anexos de mídia do iOS10+.
},
"callerName": "CallerName", // opcional. Nome do chamador. Se não especificado, "chamador desconhecido" é mostrado.
"video": true, // opcional. Indica se chamadas de vídeo são suportadas.
"supportsHolding": true, // opcional. Indica se a funcionalidade de chamada em espera é suportada.
"supportsDTMF": false, // opcional. Controla o suporte a sinal de Multi-Frequência de Tom Duplo.
"callId": "42", // opcional. O identificador único da chamada a ser cancelada.
"cancelCall": true // opcional. Defina como "true" para cancelar a chamada com o "callId" especificado.
}
}
]
}
}
Exemplo
{
"request": {
"application": "XXXXX-XXXXX", // obrigatório. Código da aplicação Pushwoosh.
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh.
"notifications": [
{
"voip_push": true, // obrigatório. Parâmetro é necessário para enviar uma notificação push VoIP.
"android_root_params": {
"callerName": "callerName", // opcional. Nome do chamador. Se não especificado, "chamador desconhecido" é mostrado.
"video": true, // opcional. Indica se chamadas de vídeo são suportadas.
"callId": 42, // opcional. O identificador único da chamada a ser cancelada.
"cancelCall": true // opcional. Defina como "true" para cancelar a chamada com o "callId" especificado.
}
}
]
}
}

Parâmetros específicos da plataforma

Anchor link to

Parâmetros do iOS

Anchor link to
Exemplo
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"ios_title": { // opcional. Objeto OU string. Adiciona título específico do iOS para a notificação push.
"en": "title"
},
"ios_subtitle": { // opcional. Objeto OU string. Adiciona subtítulo específico do iOS para a notificação push.
"en": "subtitle"
},
"ios_content": { // opcional. Objeto OU string. Adiciona conteúdo específico do iOS para a notificação push.
"en": "content"
},
"ios_badges": 5, // opcional. Número do emblema da aplicação iOS.
// Use "+n" ou "-n" para incrementar/decrementar o valor do emblema em n.
"ios_sound": "sound file.wav", // opcional. Nome do arquivo de som no pacote principal da aplicação.
// Se deixado em branco, o dispositivo produzirá um som padrão do sistema.
"ios_sound_off": true, // opcional. Habilita/desabilita o som definido pelo campo "ios_sound".
"ios_ttl": 3600, // opcional. Parâmetro de tempo de vida - tempo máximo de vida da mensagem em segundos.
"ios_silent": 1, // opcional. Habilita notificações silenciosas (ignora "sound" e "content").
"ios_category_id": "1", // opcional. ID da categoria do iOS8 da Pushwoosh.
"ios_root_params": { // opcional. Parâmetros de nível raiz para o dicionário aps.
"aps": {
"content-available": "0", // opcional. Defina "1" para enviar um push silencioso e "0" para um push regular.
"mutable-content": 1 // obrigatório para anexos de mídia do iOS10+.
},
"callerName": "CallerName", // opcional parâmetro VoIP. Nome do chamador. Se não especificado, "chamador desconhecido" é mostrado.
"video": true, // opcional parâmetro VoIP. Indica se chamadas de vídeo são suportadas.
"supportsHolding": true, // opcional parâmetro VoIP. Indica se a funcionalidade de chamada em espera é suportada.
"supportsDTMF": false, // opcional parâmetro VoIP. Controla o suporte a sinal de Multi-Frequência de Tom Duplo.
"data": {} // opcional Dados fornecidos pelo usuário, máx de 4KB
},
"ios_attachment": "URL", // opcional. Insere conteúdo de mídia na notificação.
"ios_thread_id": "some thread id", // opcional. Identificador para agrupar notificações relacionadas.
// Mensagens com o mesmo ID de thread serão agrupadas
// na tela de bloqueio e na Central de Notificações.
"ios_critical": true, // opcional. Marca a notificação do iOS como um alerta crítico
// reproduzindo som mesmo se o dispositivo estiver mudo ou
// o modo Não Perturbe estiver ativado.
"ios_category_custom": "category", // opcional. Categoria APNS personalizada.
"ios_interruption_level": "active", // opcional. Um de "passive", "active", "time-sensitive",
// "critical". Indica a importância e
// o tempo de entrega de uma notificação. Consulte o
// guia de push único para detalhes.
"apns_trim_content": 1 // opcional. (0|1) Corta as strings de conteúdo excedentes com reticências.
}]
}
}

Parâmetros do Android

Anchor link to
Exemplo
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"android_header": { // opcional. Cabeçalho da notificação Android.
"en": "header"
},
"android_content": { // opcional. Conteúdo da notificação Android.
"en": "content"
},
"android_root_params": { // opcional. Objeto chave-valor personalizado.
"key": "value", // Parâmetros de nível raiz para os destinatários do payload android.
"CancelID": 12345678, // opcional. Cancela a notificação push com o
"voip": true, // obrigatório parâmetro VoIP. Parâmetro é necessário para enviar notificações push VoIP.
"callerName": "callerName", // opcional parâmetro VoIP. Nome do chamador. Se não especificado, "chamador desconhecido" é mostrado.
"video": true, // opcional parâmetro VoIP. Indica se chamadas de vídeo são suportadas.
}, // ID da Mensagem especificado (obtenha o ID do Histórico de Mensagens)
"android_sound": "soundfile", // opcional. Sem extensão de arquivo. Se deixado em branco,
// o dispositivo produzirá um som padrão do sistema.
"android_sound_off": true, // opcional. Habilita/desabilita o som definido pelo campo "android_sound"
"android_icon": "icon.png", // opcional.
"android_custom_icon": "URL.png", // opcional. URL completa para o arquivo de imagem.
"android_banner": "URL.png", // opcional. URL completa para o arquivo de imagem.
"android_badges": 5, // opcional. Número do emblema do ícone da aplicação Android.
// Use "+n" ou "-n" para incrementar/decrementar o valor do emblema em n.
"android_gcm_ttl": 3600, // opcional. Parâmetro de tempo de vida — tempo máximo de vida da mensagem em segundos.
"android_vibration": 0, // opcional. Vibração forçada no Android para pushes de alta prioridade.
"android_led": "#rrggbb", // opcional. Cor hexadecimal do LED, o dispositivo fará sua melhor aproximação.
"android_priority": -1, // opcional. Define o parâmetro "importance" para dispositivos com
// Android 8.0 e superior, bem como o parâmetro "priority"
// para dispositivos com Android 7.1 e inferior. Estabelece o
// nível de interrupção de um canal de notificação ou uma notificação
// particular. Valores válidos são -2, -1, 0, 1, 2.
"android_delivery_priority": "normal", // opcional. "normal" ou "high".
// Habilita a entrega da notificação quando o
// dispositivo está no modo de economia de energia.
"android_ibc": "#RRGGBB", // opcional. cor de fundo do ícone no Lollipop, #RRGGBB,
// #AARRGGBB, "red", "black", "yellow", etc.
"android_silent": 1, // opcional. 0 ou 1. Habilita notificação silenciosa.
// Ignora som e conteúdo
"android_group_id": "123" // opcional. Identificador para agrupar notificações relacionadas. Mensagens com
// o mesmo ID de thread serão agrupadas na
// Central de Notificações.
}]
}
}

Parâmetros da Huawei

Huawei
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"huawei_android_header": { // opcional. Objeto OU string. Título da notificação
"en": "header"
},
"huawei_android_content": { // opcional. Objeto OU string. Conteúdo da notificação
"en": "content"
},
"huawei_android_badges": true, // opcional.
"huawei_android_silent": 0, // opcional. 0 ou 1. Habilita notificação silenciosa.
// Ignora som e conteúdo
"huawei_android_icon": "URL.png", // opcional.
"huawei_android_led": "#FF0011", // opcional. Cor hexadecimal do LED, o dispositivo fará sua melhor aproximação
"huawei_android_vibration": 1, // opcional. Vibração forçada da Huawei para pushes de alta prioridade
"huawei_android_sound": "sound.wav", // opcional. Se deixado em branco, o dispositivo produzirá
// um som padrão do sistema
"huawei_android_sound_off": true, // opcional. Habilita/desabilita o som definido pelo
// campo "huawei_android_sound"
"huawei_android_custom_icon": "URL.png", // opcional
"huawei_android_gcm_ttl": 2400, // opcional. Parâmetro de tempo de vida - máximo
// tempo de vida da mensagem em segundos
"huawei_android_banner": "URL.png", // opcional. URL do caminho completo para o arquivo de imagem
"huawei_android_root_params": { // opcional. Objeto chave-valor personalizado.
"key": "value" // Parâmetros de nível raiz para os destinatários do payload da Huawei.
},
"huawei_android_priority": 0, // opcional. Valores válidos: -2, -1, 0, 1, 2
"huawei_android_ibc": "#0011AA", // opcional. Cor de fundo do ícone no Lollipop
"huawei_android_lockscreen": 1, // opcional
"huawei_android_delivery_priority": "normal", // opcional. "normal" ou "high". Habilita a entrega de notificações
// no modo de economia de energia
"huawei_android_group_id": "group_id" // opcional. Identificador para agrupar notificações relacionadas
}]
}
}

Parâmetros do Safari

Anchor link to
Safari
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"safari_url_args": [ // obrigatório, mas o valor pode estar vazio
"firstArgument",
"secondArgument"
],
"safari_title": { // opcional. Objeto OU string. Título da notificação.
"en": "content"
},
"safari_content": { // opcional. Objeto OU string. Conteúdo da notificação.
"en": "content"
},
"safari_action": "Click here", // opcional.
"safari_ttl": 3600 // opcional. Parâmetro de tempo de vida — o máximo
// tempo de vida de uma mensagem em segundos.
}]
}
}

Parâmetros do Chrome

Anchor link to
Chrome
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"chrome_title": { // opcional. Objeto OU string. Você pode especificar o cabeçalho
"en": "title" // da mensagem neste parâmetro.
},
"chrome_content": { // opcional. Objeto OU string. Você pode especificar o conteúdo
"en": "content" // da mensagem neste parâmetro.
},
"chrome_icon": "URL.png", // opcional. URL completa para o ícone ou caminho do arquivo de recursos da extensão
"chrome_gcm_ttl": 3600, // opcional. Parâmetro de tempo de vida – tempo máximo de vida da mensagem em segundos.
"chrome_duration": 20, // opcional. máx 50 segundos. Altera o tempo de exibição do push do Chrome.
// Defina como 0 para exibir o push até que o usuário interaja com ele.
"chrome_image": "image_URL", // opcional. URL para imagem grande.
"chrome_root_params": { // opcional. Define parâmetros específicos para mensagens enviadas para o Chrome.
"key": "value"
},
"chrome_button_text1": "text1", // opcional
"chrome_button_url1": "button1_URL", // opcional. Ignorado se chrome_button_text1 não estiver definido.
"chrome_button_text2": "text2", // opcional
"chrome_button_url2": "button2_url" // opcional. Ignorado se chrome_button_text2 não estiver definido.
}]
}
}

Parâmetros do Firefox

Anchor link to
Firefox
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"firefox_title": { // opcional. Objeto OU string. Você pode especificar o cabeçalho da mensagem aqui.
"en": "title"
},
"firefox_content": { // opcional. Objeto OU string. Você pode especificar o conteúdo da mensagem aqui.
"en": "content"
},
"firefox_icon": "URL.png", // opcional. URL do caminho completo para o ícone ou caminho para o
// arquivo nos recursos da extensão.
"firefox_root_params": { // opcional. Define parâmetros específicos para mensagens enviadas para o Firefox.
"key": "value"
}
}]
}
}

Parâmetros da Amazon

Anchor link to
Amazon
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"adm_header": { // opcional. Objeto OU string. Você pode especificar o cabeçalho da mensagem aqui.
"en": "header"
},
"adm_content": { // opcional. Objeto OU string. Você pode especificar o conteúdo da mensagem aqui.
"en": "content"
},
"adm_root_params": { // opcional. Objeto chave-valor personalizado
"key": "value"
},
"adm_sound": "push.mp3", // opcional.
"adm_sound_off": true, // opcional. Habilita/desabilita o som definido pelo campo "adm_sound"
"adm_icon": "icon.png", // opcional. URL completa para o ícone.
"adm_custom_icon": "URL.png", // opcional.
"adm_banner": "URL.png", // opcional.
"adm_ttl": 3600, // opcional. Parâmetro de tempo de vida — o máximo de tempo de vida da mensagem
// em segundos.
"adm_priority": -1 // opcional. Prioridade do push na gaveta de push da Amazon,
// valores válidos são -2, -1, 0, 1 e 2.
}]
}
}

Parâmetros do Mac OS X

Anchor link to
Mac OS X
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"mac_title": { // opcional. Objeto OU string. Adiciona Título para a notificação push.
"en": "title"
},
"mac_subtitle": { // opcional. Adiciona subtítulo para a notificação push.
"en": "subtitle"
},
"mac_content": { // opcional. Adiciona conteúdo para a notificação push.
"en": "content"
},
"mac_badges": 3, // opcional.
"mac_sound": "sound.caf", // opcional.
"mac_sound_off": true, // opcional. Habilita/desabilita o som definido pelo campo "mac_sound"
"mac_root_params": { // opcional.
"content-available": 1
},
"mac_ttl": 3600 // opcional. Parâmetro de tempo de vida — tempo máximo de vida da mensagem em segundos.
}]
}
}

Parâmetros do Windows

Anchor link to
Windows
{
"request": {
"application": "12345-67891", // obrigatório. Código da aplicação Pushwoosh
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"notifications": [{
"wns_content": { // obrigatório. Conteúdo (XML ou bruto) da notificação codificado em base64 do MIME
// na forma de Objeto OU String
"en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==",
"de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4="
},
"wns_type": "Badge", // opcional. 'Tile' | 'Toast' | 'Badge' | 'Raw'
"wns_tag": "myTag", // opcional. Usado na política de substituição de Tile.
// Uma string alfanumérica de não mais que 16 caracteres.
"wns_cache": 1, // opcional. (1|0) Traduz para o valor X-WNS-Cache-Policy.
"wns_ttl": 600 // opcional. Tempo de expiração para a notificação em segundos.
}]
}
}

Resposta:

Código de status HTTPstatus_codeDescrição
200200Mensagem criada com sucesso
200210Erro de argumento. Veja status_message para mais informações
400N/AString de solicitação malformada
500500Erro interno

Rastreamento de mensagens da API

Anchor link to

Para fins de balanceamento de carga, não armazenamos mensagens enviadas através da API com o parâmetro “devices” que contém menos de 10 dispositivos em um array. Devido a isso, tais mensagens não serão exibidas em seu Histórico de Mensagens.

Para ver relatórios de push durante a fase de testes, use o rastreamento de mensagens da API. Ativar esta opção ON permite que você substitua este limite por 1 hora e salve tais pushes no Histórico de Mensagens. O rastreamento de mensagens da API desliga-se automaticamente após 1 hora.

O rastreamento de mensagens da API pode ser ativado na página Histórico de Mensagens clicando em Iniciar rastreamento de mensagens da API no canto superior direito.

Condições de Tag

Anchor link to

Cada condição de tag é um array como [tagName, operator, operand] onde

  • tagName: nome de uma tag
  • operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN” | “NOTSET” | “ANY”
  • operand: string | integer | array | date

Descrição do operador

Anchor link to
  • EQ: o valor da tag é igual ao operando;
  • IN: o valor da tag se cruza com o operando (o operando deve ser sempre um array);
  • NOTEQ: o valor da tag não é igual a um operando;
  • NOTIN: o valor da tag não se cruza com o operando (o operando deve ser sempre um array);
  • GTE: o valor da tag é maior ou igual ao operando;
  • LTE: o valor da tag é menor ou igual ao operando;
  • BETWEEN: o valor da tag é maior ou igual ao valor mínimo do operando, mas menor ou igual ao valor máximo do operando (o operando deve ser sempre um array);
  • NOTSET: tag não definida. O operando não é considerado;
  • ANY: a tag tem qualquer valor. O operando não é considerado.

Tags de string

Anchor link to

Operadores válidos: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
Operandos válidos:

  • EQ, NOTEQ: o operando deve ser uma string;
  • IN, NOTIN: o operando deve ser um array de strings como ["valor 1", "valor 2", "valor N"];
  • NOTSET: tag não definida. O operando não é considerado;
  • ANY: a tag tem qualquer valor. O operando não é considerado.

Tags de inteiro

Anchor link to

Operadores válidos: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Operandos válidos:

  • EQ, NOTEQ, GTE, LTE: o operando deve ser um inteiro;
  • IN, NOTIN: o operando deve ser um array de inteiros como [valor 1, valor 2, valor N];
  • BETWEEN: o operando deve ser um array de inteiros como [valor_min, valor_max];
  • NOTSET: tag não definida. O operando não é considerado;
  • ANY: a tag tem qualquer valor. O operando não é considerado.

Tags de data

Anchor link to

Operadores válidos: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
Operandos válidos:

  • "AAAA-MM-DD 00:00" (string)
  • timestamp unix 1234567890 (inteiro)
  • "N days ago" (string) para operadores EQ, BETWEEN, GTE, LTE

Tags booleanas

Anchor link to

Operadores válidos: EQ, NOTSET, ANY
Operandos válidos: 0, 1, true, false

Tags de lista

Anchor link to

Operadores válidos: IN, NOTIN, NOTSET, ANY
Operandos válidos: o operando deve ser um array de strings como ["valor 1", "valor 2", "valor N"].

Snippets de /createMessage

Anchor link to

Exemplos de solicitações /createMessage:

#!/bin/bash
#Uso
if [ ! -n "$1" ] || [ ! -n "$2" ]
then
echo "`basename $0` uso: api_token appid mensagem";
exit 1;
fi;
MESSAGE="$3";
if [ -z "$3" ]
then
MESSAGE='Um push para governar todos!'
fi;
echo -e "Resposta:"
curl --data-binary "
{\"request\":
{\"application\":\"$2\",
\"auth\":\"$1\",
\"notifications\":
[{
\"send_date\": \"now\",
\"content\": \"$MESSAGE\"
}]
}
}" \
-H "Content-type: application/json" \
"https://api.pushwoosh.com/json/1.3/createMessage"
echo "";
exit 0;

deleteMessage

Anchor link to

POST https://api.pushwoosh.com/json/1.3/deleteMessage

Exclui uma mensagem agendada.

Corpo da Solicitação

Anchor link to
NomeTipoDescrição
auth*stringToken de acesso à API do Painel de Controle da Pushwoosh.
message*stringCódigo da mensagem obtido na solicitação /createMessage.
{
"status_code": 200,
"status_message": "OK"
}
Exemplo
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"message": "xxxx-xxxxxxx-xxxxxx" // obrigatório. Código da mensagem obtido em /createMessage
}
}

Códigos de status:

Código de status HTTPstatus_codeDescrição
200200Mensagem excluída com sucesso
200210Erro de argumento. Veja status_message para mais informações
400N/AString de solicitação malformada
500500Erro interno
<?php
// veja https://gomoob.github.io/php-pushwoosh/delete-message.html
use Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// cria instância da solicitação
$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// chama o Web Service '/deleteMessage'
$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) {
print 'Ótimo, minha mensagem foi excluída!';
} else {
print 'Opa, a exclusão falhou :-(';
print 'Código de status: ' . $response->getStatusCode();
print 'Mensagem de status: ' . $response->getStatusMessage();
}

getMessageDetails

Anchor link to

POST https://api.pushwoosh.com/json/1.3/getMessageDetails

Recupera os detalhes da mensagem.

Corpo da Solicitação

Anchor link to
NomeTipoDescrição
auth*stringToken de acesso à API do Painel de Controle da Pushwoosh.
message*stringCódigo da mensagem ou ID da mensagem.
{
"status_code": 200,
"status_message": "OK",
"response": {
"message": {
"id": 2068991743,
"created": "2016-09-14 17:19:42",
"send_date": "2016-09-14 17:19:41",
"status": "done",
"content": {
"en": "Hello {Name|CapitalizeFirst|friend}! 🚀"
},
"platforms": "[1]",
"ignore_user_timezone": "1",
"code": "XXXX-92B4C3C5-A7F5EF70",
"data": {
"key": "value"
}
}
}
}
Exemplo
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"message": "xxxx-xxxxxxx-xxxxxx" // obrigatório. código da mensagem ou ID da mensagem
}
}

createTargetedMessage

Anchor link to

POST https://api.pushwoosh.com/json/1.3/createTargetedMessage

Cria uma nova notificação push direcionada.

Corpo da Solicitação

Anchor link to
NomeTipoDescrição
auth*stringToken de acesso à API do Painel de Controle da Pushwoosh.
devices_filter*stringVeja a observação abaixo.
send_date*stringAAAA-MM-DD HH:mm ou ‘now’.
ignore_user_timezonebooleanSe ignorado, UTC-0 é o padrão para “send_date”.
timezonestringSe ignorado, UTC-0 é o padrão para “send_date”.
campaignstringCódigo de uma campanha à qual você deseja atribuir esta mensagem push.
content*stringConteúdo da notificação. Veja o exemplo de solicitação para detalhes.
transactionIdstringIdentificador de mensagem único para evitar a duplicação de mensagens em caso de problemas de rede. Armazenado no lado da Pushwoosh por 5 minutos.
linkstringLink a ser aberto assim que um usuário abrir uma mensagem push.
minimize_linkinteger0 - não minimizar, 2 - bit.ly. Padrão = 2.
dataobjectString JSON ou objeto JSON. Será passado como parâmetro “u” no payload (convertido para string JSON).
presetstringCódigo do preset.
send_rateintegerLimitação de taxa. Valores válidos são de 100 a 1000 pushes por segundo.
inbox_datestringEspecifique quando remover uma mensagem da Caixa de Entrada.
inbox_imagestringURL da imagem a ser mostrada perto da mensagem na Caixa de Entrada.
{
"status_code": 200,
"status_message": "OK",
"response": {
"messageCode": "97B0-C7473871-2FBDFDC6"
}
}

Mais exemplos de resposta:

{
"status_code": 210,
"status_message": "Ocorreram erros ao compilar o filtro",
"response": {
"errors": [{
"message": "Especificação de conjunto de tags inválida. \")\" esperado.",
"type": "syntax"
}]
}
}
Exemplo
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"devices_filter": "A(\"XXXXX-XXXXX\") * T(\"City\", EQ, \"Name\")", // obrigatório. Sintaxe explicada abaixo
"send_date": "now", // opcional. AAAA-MM-DD HH:mm OU 'now'
"ignore_user_timezone": true, // opcional.
"timezone": "America/New_York", // opcional. Se ignorado, UTC-0 é o padrão para "send_date".
// Mais informações https://php.net/manual/timezones.php.
"campaign": "CAMPAIGN_CODE", // opcional. Código da campanha à qual você deseja atribuir esta mensagem push.
"content": { // opcional. Objeto OU string. Use "wns_content" em vez disso para Windows.
"en": "English",
"de": "Deutsch"
},
"transactionId": "unique UUID", // opcional. Identificador de mensagem único para evitar a duplicação de mensagens
// em caso de problemas de rede. Armazenado no lado da
// Pushwoosh por 5 minutos.
"rich_media": "XXXXX-XXXXX", // opcional. Copie o código de Rich Media da barra de URL da
// página do editor de Rich Media no Painel de Controle da Pushwoosh.
"link": "https://google.com", // opcional. Para deeplinks, adicione "minimize_link": 0
"minimize_link": 0, // opcional. 0 — não minimizar, 2 — bitly. Padrão = 2.
// O encurtador de URL do Google está desativado desde 30 de março de 2019.
// Por favor, note que os encurtadores têm restrições
// no número de chamadas.
"data": { // opcional. String JSON ou objeto JSON.
"key": "value" // Será passado como parâmetro "u" no payload
}, // (convertido para string JSON).
"preset": "XXXXX-XXXXX", // opcional. Código do Preset de Push do seu Painel de Controle.
"send_rate": 100, // opcional. Limitação de taxa. Valores válidos são de 100 a 1000 pushes/segundo.
"dynamic_content_placeholders": { // opcional. Placeholders para conteúdo dinâmico em vez de tags de dispositivo.
"firstname": "John",
"lastname": "Doe"
},
// Para salvar a mensagem na Caixa de Entrada via API, use "inbox_date" ou "inbox_image".
// A mensagem é salva quando pelo menos um desses parâmetros é usado.
"inbox_image": "Inbox image URL", // opcional. A imagem a ser mostrada perto da mensagem.
"inbox_date": "2017-02-02" // opcional. Especifique quando remover uma mensagem da Caixa de Entrada.
// A mensagem será removida da Caixa de Entrada às 00:00:01 UTC da
// data especificada, então o dia anterior é o último
// dia que um usuário pode ver a mensagem em sua Caixa de Entrada.
// Se não especificado, a data de remoção padrão é o dia seguinte
// à data de envio.
}
}

O básico é muito simples – todos os filtros são realizados nos conjuntos de entidades.

Os conjuntos são definidos como:

1. Dispositivos inscritos na aplicação específica (A);
2. Dispositivos que correspondem aos valores de tag especificados (T) ou valor de tag específico da aplicação (AT);\

Vamos tentar com alguns exemplos de acordo com a lista acima.

Direcionando assinantes de aplicativos

Anchor link to

O filtro “A” define um conjunto de dispositivos inscritos em um aplicativo específico:

A("XXXXX-XXXXX", ["iOS", "Android", "OsX", "Windows", "Amazon", "Safari", "Chrome", "Firefox"])

onde

  • “XXXXX-XXXXX” – Código da Aplicação Pushwoosh
  • [“iOS”, “Android”, …] – array de plataformas direcionadas. Se omitido, a mensagem será enviada para todas as plataformas disponíveis para este aplicativo.

Filtrando por valores de tag

Anchor link to

O filtro “T” define um conjunto de dispositivos que têm valores de tag especificados atribuídos.

T(\"Age\", IN, [17,20])

Define o conjunto de dispositivos que têm a tag “age” definida para um dos valores: 17, 18, 19, 20.

Tipos de tags e operadores

Anchor link to

O mais importante a entender é que as tags são compartilhadas entre os aplicativos, e isso representa um instrumento muito poderoso para segmentar e filtrar seus usuários-alvo sem se prender a um aplicativo específico.

A tag pode ser de um dos três tipos diferentes: String, Integer, List. O tipo de tag define quais operadores você pode usar para uma tag específica.

Tags de string

Anchor link to

Operadores aplicáveis:

  • EQ – direciona dispositivos com um valor de tag especificado
  • IN – direciona dispositivos com qualquer um dos valores de tag especificados
  • NOTIN – direciona dispositivos sem valores de tag especificados
  • NOTEQ – direciona dispositivos com um valor de tag diferente do especificado
  • NOTSET – direciona dispositivos sem valor para uma tag especificada
  • ANY – direciona dispositivos com qualquer valor definido para uma tag especificada

Exemplos:

T (\"Age\", EQ, 30) – filtra usuários com 30 anos

T (\"favorite_color\", IN, [\"red\",\"green\",\"blue\"]) – filtra usuários que escolheram vermelho, verde ou azul como sua cor favorita.

T (\"Name", NOTSET, \"\") – direciona dispositivos sem valor para a tag Name.

Você pode usar valores numéricos com as tags de string, mas tais valores serão convertidos para uma string.

Tags de inteiro

Anchor link to

Operadores aplicáveis:

  • GTE – maior ou igual a um valor especificado
  • LTE– menor ou igual a um valor especificado
  • EQ – igual a um valor especificado
  • BETWEEN – entre os valores mínimo e máximo especificados
  • IN – qualquer um dos valores especificados
  • NOTIN – nenhum valor especificado atribuído a um dispositivo
  • NOTEQ – dispositivos com um valor de tag diferente do especificado
  • NOTSET – dispositivos sem valor para uma tag especificada
  • ANY – dispositivos com qualquer valor definido para uma tag especificada

Exemplos:

T (\"Level\", EQ, 14) – filtra usuários apenas no nível 14.

T (\"Level\", BETWEEN, [1,5) – filtra usuários nos níveis 1, 2, 3, 4 e 5.

T (\"Level", GTE, 29) – direciona usuários que alcançaram pelo menos o nível 29.

Tags de lista

Anchor link to

Operadores aplicáveis:

  • IN – dispositivos com qualquer um dos valores de tag especificados

Exemplo: T("Category", IN, ["breaking_news","business","politics"])

Tags de data

Anchor link to

Operadores aplicáveis:

  • GTE – maior ou igual a um valor especificado
  • LTE– menor ou igual a um valor especificado
  • EQ – igual a um valor especificado
  • BETWEEN – entre os valores mínimo e máximo especificados
  • NOTEQ – dispositivos com um valor de tag diferente do especificado
  • NOTSET – dispositivos sem valor para uma tag especificada
  • ANY – dispositivos com qualquer valor definido para uma tag especificada

Exemplos:

AT("7777D-322A7","Last Application Open", BETWEEN, ["2022-02-28", "2022-03-02"])

AT("7777D-322A7","Last Application Open", GTE, "90 days ago")

Operações

Anchor link to
  • “+” – une dois conjuntos (equivale a OU)
  • “*” – cruza dois conjuntos (equivale a E)
  • “\” – subtrai um conjunto de outro (equivale a NÃO)

Todas as operações são associativas à esquerda. ”+” e ”*” têm a mesma prioridade. "" tem prioridade maior. Você pode usar parênteses para definir as prioridades dos cálculos.

Note que a operação “\” não é comutativa. A("12345-12345") \ A("67890-67890") não é o mesmo que A("67890-67890") \ A("12345-12345").

getPushHistory

Anchor link to

POST https://api.pushwoosh.com/json/1.3/getPushHistory

Obtém o histórico de mensagens com detalhes do push.

Corpo da Solicitação

Anchor link to
NomeTipoDescrição
auth*stringToken de acesso à API do Painel de Controle da Pushwoosh.
limitMessagesintegerLimita o número de mensagens em uma resposta. Valores possíveis de 10 a 1000.
sourcestringFonte do histórico de push. Pode ser nulo ou: “CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test”.
searchBystringValores possíveis para pesquisar. Pode ser nulo ou: “notificationID”, “notificationCode”, “applicationCode”, “campaignCode”.
valuestringValor de pesquisa definido de acordo com o campo “searchBy”.
lastNotificationIDstringUsado para paginação. Último messageId da chamada /getPushHistory anterior. Veja detalhes abaixo.
{
"status_code": 200,
"status_message": "OK",
"response": {
"rows": [{
"id": 10191611434,
"code": "8071-07AD1171-77238AD1",
"createDate": "2020-09-14 12:26:21",
"sendDate": "2020-09-14 12:26:21",
"content": {
"en": "Hello!"
},
"url": null,
"ios_title": null,
"ios_subtitle": null,
"ios_root_params": null,
"android_header": null,
"android_root_params": null,
"conditions": null,
"conditions_operator": "AND",
"filter_code": "E3A64-A5F3C",
"filter_conditions": "#In-app Purchase(≠0)",
"filter_name": "Purchased something",
"geozone": null,
"campaignId": "",
"campaignName": "",
"subscription_segments": null,
"open": {
"C90C0-0E786": {
"IOS": 0
}
},
"sent": {
"C90C0-0E786": {
"IOS": 1
}
},
"ctr": {
"C90C0-0E786": 0
}
}, {
"id": 10191609202,
"code": "41CA-83F8E0D7-7A63822B",
"createDate": "2020-09-14 12:25:55",
"sendDate": "2020-09-14 12:25:55",
"content": {
"en": "Hi!"
},
"url": null,
"ios_title": null,
"ios_subtitle": null,
"ios_root_params": null,
"android_header": null,
"android_root_params": null,
"conditions": null,
"conditions_operator": "AND",
"filter_code": null,
"filter_conditions": null,
"filter_name": null,
"geozone": null,
"campaignId": "",
"campaignName": "",
"subscription_segments": {
"2D732-BB981": "News"
},
"open": {
"C90C0-0E786": {
"CHROME": 0,
"IOS": 0
}
},
"sent": {
"C90C0-0E786": {
"CHROME": 1,
"IOS": 2
}
},
"ctr": {
"C90C0-0E786": 0
}
}]
}
}
Exemplo
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"source": null, // opcional. Valores possíveis são nulo, "CP", "API", "GeoZone",
// "RSS", "AutoPush", "A/B Test"
"searchBy": "applicationCode", // opcional. Valores possíveis são "", "notificationID",
// "notificationCode", "applicationCode", "campaignCode"
"value": "C8717-703F2", // opcional. Valor de pesquisa definido de acordo com o campo "searchBy".
"lastNotificationID": 0, // opcional. Usado para paginação. Último messageId da
// chamada /getPushHistory anterior. Veja detalhes abaixo.
"limitMessages": 1000 // opcional. Valor possível de 10 a 1000.
}
}

Este método retornará 1000 mensagens da conta ordenadas por Id da mensagem. Para obter a segunda página, especifique o último Id da mensagem da resposta anterior no parâmetro lastNotificationId.

Tipos de dados de resposta

Anchor link to
id -- int | 0
code -- string
createDate -- string (data: %Y-%m-%d %H:%M:%S)
sendDate -- string (data: %Y-%m-%d %H:%M:%S)
content -- array ( dict {lang: value} | list [])
title -- array ( dict {lang: value} | list [])
subtitle -- array ( dict {lang: value} | list [])
url -- string
ios_title -- string | array ( dict {lang: value} ) | null
ios_subtitle -- string | array ( dict {lang: value} ) | null
ios_root_params -- dict (JSON) | null
android_header -- string | array ( dict {lang: value} ) | null
android_root_params -- dict (JSON) | null
conditions -- list (JSON) | null
conditions_operator -- string | null
filter_code -- string | null
filter_name -- string | null
filter_conditions -- string | null
geozone -- string | null
campaignId -- string | ""
campaignName -- string | ""
subscription_segments (obsoleto) -- list (JSON) | null
data -- dict (JSON) | null
open -- dict [dict [string: int]] | "" Exemplo: 'open': {'AAAAA-BBBBB': {'IOS': 1, 'ANDROID': 1}}
sent -- dict [dict [string: int]] | "" Exemplo: 'sent': {'AAAAA-BBBBB': {'IOS': 10, 'ANDROID': 10}}
ctr -- dict [string: int] | "" Exemplo: {'AAAAA-BBBBB': 1}
errors -- dict [string: int] | "" Exemplo: {'ANDROID': 1, 'IOS': 1}

cancelMessage

Anchor link to

POST https://api.pushwoosh.com/json/1.3/cancelMessage

Exclui uma mensagem agendada.

Corpo da Solicitação

Anchor link to
NomeTipoDescrição
auth*stringToken de acesso à API do Painel de Controle da Pushwoosh.
message*stringO Código da mensagem obtido na resposta /createMessage.
{
"status_code":200,
"status_message":"OK"
}
Exemplo
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
"message": "xxxx-xxxxxxx-xxxxxx" // obrigatório. O código da mensagem obtido na resposta /createMessage
}
}

Códigos de status:

Código de status HTTPstatus_codeDescrição
200200Mensagem cancelada com sucesso
200210Erro de argumento. Veja status_message para mais informações.
400N/AString de solicitação malformada
500500Erro interno