Pular para o conteúdo

API de Mensagens

createMessage Obsoleto

Anchor link to

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

Cria uma nova notificação push.

Corpo da Requisiçã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 no exemplo de requisição abaixo.
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"C3F8-C3863ED4-334AD4F1"
]
}
}

Exemplo de requisiçã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 ao 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 único de mensagem 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 requisição,
// eles substituem os parâmetros do preset.
"send_rate": 100, // opcional. Limitação de taxa (Throttling). Valores válidos são de 100 a 1000 pushes/segundo.
"send_rate_avoid": true, // opcional. Se definido como true, o limite de throttling não será aplicado a
// esta notificação push específica.
// Relacionado a templates, por favor, consulte o guia do Mecanismo 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"
},
"message_type": "marketing", // opcional. "marketing" ou "transactional".
// Se omitido, usuários com PW_ControlGroup: true não receberão a mensagem.
// Parâmetros de limite de frequência. Certifique-se de que o limite de frequência Global esteja configurado no Painel de Controle.
// O limite de frequência não se aplica a mensagens transacionais.
// Em todos os outros casos, incluindo "message_type" omitido, o limite de frequência se aplica.
"capping_days": 30, // opcional. Quantidade de dias para o limite de frequência (máximo de 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 de 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 ao lado 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 será enviada apenas para
// os dispositivos na lista. Grupo de Aplicações para a 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áximo de 1000 itens.
], // Para push, use "devices" em vez disso.
// Notificações push centradas no usuário
"users": [ // opcional. Se definido, a mensagem será entregue apenas 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 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 requisiçã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 requisiçõ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 ao sinal de Multifrequê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. Ativar/desativar 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. 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 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 Multifrequência de Tom Duplo.
"data": {} // opcional Dados fornecidos pelo usuário, máximo de 4KB
},
"ios_attachment": "URL", // opcional. Inserir 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_collapse_id": "promo", // opcional. Identificador de colapso do APNs. Notificações com o mesmo
// apns_collapse_id substituem umas às outras no dispositivo.
"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. Ativar/desativar 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 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 na
// Central de Notificações.
"android_collapse_key": "promo" // opcional. Chave de colapso do FCM. Notificações com a mesma
// chave de colapso substituem umas às outras enquanto o dispositivo está offline.
}]
}
}

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. 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 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". 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 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áximo de 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. Definir 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 for definido.
"chrome_button_text2": "text2", // opcional
"chrome_button_url2": "button2_url" // opcional. Ignorado se chrome_button_text2 não for 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. Definir parâmetros específicos para mensagens enviadas ao 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. Ativar/desativar 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 vida 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 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. Ativar/desativar 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 da 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 requisiçã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 dias atrás" (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 requisiçõ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, seja ela ainda agendada ou já enviada. Para uma mensagem agendada, isso também a remove do Histórico de Mensagens imediatamente — para uma mensagem já enviada, veja a advertência abaixo.

Envios de acompanhamento criados a partir da mensagem com Reenviar para não abridores não são afetados — exclua ou cancele cada um deles separadamente.

Use /cancelMessage em vez disso se quiser parar o envio, mas manter a mensagem no Histórico de Mensagens com o status canceled.

Corpo da Requisição

Anchor link to
NomeTipoDescrição
auth*stringToken de acesso à API do Painel de Controle da Pushwoosh.
message*stringCódigo da mensagem obtido na requisiçã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, por exemplo, a mensagem ainda está no status creating. Veja status_message para mais informações
400N/AString de requisição malformada
500500Erro interno
<?php
// veja https://gomoob.github.io/php-pushwoosh/delete-message.html
use Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// cria a instância da requisiçã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 Requisiçã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 Obsoleto

Anchor link to

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

Cria uma nova notificação push direcionada.

Corpo da Requisiçã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 requisição para detalhes.
transactionIdstringIdentificador único de mensagem 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 abre 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 (Throttling). 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 ao lado 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 único de mensagem 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 (Throttling). 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 ao lado 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 na aplicação específica (A);
2. Dispositivos que correspondem aos valores de tag especificados (T) ou ao valor de tag específico da aplicação (AT);\

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

Direcionando assinantes da aplicação

Anchor link to

O filtro “A” define um conjunto de dispositivos inscritos em uma aplicação específica:

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 alvo. Se omitido, a mensagem será enviada para todas as plataformas disponíveis para esta aplicação.

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 as aplicações, e isso representa um instrumento muito poderoso para segmentar e filtrar seus usuários-alvo sem se prender a uma aplicação específica.

A tag pode ser de três tipos diferentes: String, Inteiro, Lista. 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 nenhum dos 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 dos valores especificados atribuídos 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 Obsoleto

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 Requisiçã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 de mensagem da resposta anterior no parâmetro lastNotificationId.

Tipos de dados da 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

Cancela o envio de uma mensagem agendada. A mensagem permanece no Histórico de Mensagens com o status canceled. Envios de acompanhamento criados a partir dela com Reenviar para não abridores também são cancelados.

Use /deleteMessage em vez disso se quiser que a mensagem seja removida do Histórico de Mensagens (veja a advertência lá sobre mensagens já enviadas).

Corpo da Requisiçã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 de /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 de /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 requisição malformada
500500Erro interno