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 do aplicativo Pushwoosh
notifications*arrayArray JSON de parâmetros de 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 do aplicativo 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 da 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.
// Observe 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. 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 não será aplicado a
// esta notificação push específica.
// Relacionado a templates, consulte o guia do Motor de Templates 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 limite de frequência. Certifique-se de que o limite de frequência Global esteja configurado no Painel de Controle.
"capping_days": 30, // opcional. Quantidade de dias para o limite 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 específico 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 o limite de frequência para pushes futuros.
"capping_avoid": true, // opcional. Se definido como true, o limite de frequência não será aplicado 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 em 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" // Não mais que 1000 tokens/hwids em
], // um array. Se definido, a mensagem só será enviada para
// os dispositivos na lista. O Grupo de Aplicativos para a lista de dispositivos
// não é permitido. Tokens de push do iOS só podem estar em minúsculas.
// 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 o parâmetro devices,
// este último será ignorado. Não mais que 1000
// IDs de usuário em um array. O Grupo de Aplicativos para a 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 da API createMessage para cada plataforma.

Exemplo
{
"request": {
"application": "XXXXX-XXXXX", // obrigatório. Código do aplicativo Pushwoosh.
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh.
"notifications": [
{
"voip_push": true, // obrigatório. O 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 as 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 ao 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 do aplicativo Pushwoosh.
"auth": "yxoPUlwqm…………pIyEX4H", // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh.
"notifications": [
{
"voip_push": true, // obrigatório. O 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 as 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 do aplicativo 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 do aplicativo 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 do aplicativo.
// Se deixado em branco, o dispositivo produzirá um som padrão do sistema.
"ios_sound_off": true, // opcional. Ativar/desativar o som definido pelo campo "ios_sound".
"ios_ttl": 3600, // opcional. Parâmetro de tempo de vida - vida útil máxima da mensagem em segundos.
"ios_silent": 1, // opcional. Ativa 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 as 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 ao sinal de Multi-Frequência de Tom Duplo.
"data": {} // opcional Dados fornecidos pelo usuário, máximo 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 que o dispositivo esteja no mudo ou
// o modo Não Perturbe esteja 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 do aplicativo 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 do Android.
"en": "header"
},
"android_content": { // opcional. Conteúdo da notificação do 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 do android.
"CancelID": 12345678, // opcional. Cancela a notificação push com o
"voip": true, // obrigatório parâmetro VoIP. O 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 as chamadas de vídeo são suportadas.
}, // ID de 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. Ativar/desativar 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 do aplicativo 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 — vida útil máxima da mensagem em segundos.
"android_vibration": 0, // opcional. Vibração forçada do 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 de uma notificação
// particular. Valores válidos são -2, -1, 0, 1, 2.
"android_delivery_priority": "normal", // opcional. "normal" ou "high".
// Permite 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. Ativa 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 no
// Centro de Notificações.
}]
}
}

Parâmetros da Huawei

Huawei
{
"request": {
"application": "12345-67891", // obrigatório. Código do aplicativo 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. Ativa 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. Ativar/desativar 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 - vida útil máxima
// 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 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". Permite a entrega da notificação
// 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 do aplicativo 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 — a vida útil
// máxima de uma mensagem em segundos.
}]
}
}

Parâmetros do Chrome

Anchor link to
Chrome
{
"request": {
"application": "12345-67891", // obrigatório. Código do aplicativo 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 – vida útil máxima 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. Defina parâmetros específicos para mensagens enviadas ao 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 do aplicativo 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. Defina parâmetros específicos para mensagens enviadas ao Firefox.
"key": "value"
}
}]
}
}

Parâmetros do Amazon

Anchor link to
Amazon
{
"request": {
"application": "12345-67891", // obrigatório. Código do aplicativo 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. Ativar/desativar 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 — a vida útil máxima da mensagem
// em segundos.
"adm_priority": -1 // opcional. Prioridade do push na gaveta de pushes 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 do aplicativo 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. Ativar/desativar o som definido pelo campo "mac_sound"
"mac_root_params": { // opcional.
"content-available": 1
},
"mac_ttl": 3600 // opcional. Parâmetro de tempo de vida — vida útil máxima da mensagem em segundos.
}]
}
}

Parâmetros do Windows

Anchor link to
Windows
{
"request": {
"application": "12345-67891", // obrigatório. Código do aplicativo 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 é desativado 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 os 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 do /createMessage

Anchor link to

Exemplos de solicitações /createMessage:

#!/bin/bash
#Usage
if [ ! -n "$1" ] || [ ! -n "$2" ]
then
echo "`basename $0` usage: api_token appid message";
exit 1;
fi;
MESSAGE="$3";
if [ -z "$3" ]
then
MESSAGE='One push to rule them all!'
fi;
echo -e "Response:"
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
// see https://gomoob.github.io/php-pushwoosh/delete-message.html
use Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// creates request instance
$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// call '/deleteMessage' Web Service
$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) {
print 'Great, my message has been deleted !';
} else {
print 'Oups, the deletion failed :-(';
print 'Status code : ' . $response->getStatusCode();
print 'Status message : ' . $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 quando 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. 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": "Errors occurred while compiling filter",
"response": {
"errors": [{
"message": "Invalid tag set specification. \")\" expected.",
"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 da 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.
// Observe 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. 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 em 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 no aplicativo específico (A);
2. Dispositivos que correspondem aos valores de tag especificados (T) ou ao valor de tag específico do aplicativo (AT);\

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

Direcionando assinantes do aplicativo

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 do Aplicativo Pushwoosh
  • [“iOS”, “Android”, …] – array de plataformas alvo. 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 e operadores de Tags

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 vincular a um aplicativo específico.

A tag pode ser de 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 não igual a um 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 não igual a um 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 apenas usuários 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 não igual a um 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 pelo Id da mensagem. Para obter a segunda página, especifique o último Id de mensagem da resposta anterior no parâmetro lastNotificationId.

Tipos de dados da resposta

Anchor link to
id -- int | 0
code -- string
createDate -- string (date: %Y-%m-%d %H:%M:%S)
sendDate -- string (date: %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 (obsolete) -- list (JSON) | null
data -- dict (JSON) | null
open -- dict [dict [string: int]] | "" Example: 'open': {'AAAAA-BBBBB': {'IOS': 1, 'ANDROID': 1}}
sent -- dict [dict [string: int]] | "" Example: 'sent': {'AAAAA-BBBBB': {'IOS': 10, 'ANDROID': 10}}
ctr -- dict [string: int] | "" Example: {'AAAAA-BBBBB': 1}
errors -- dict [string: int] | "" Example: {'ANDROID': 1, 'IOS': 1}

cancelMessage

Anchor link to

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

Cancela 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