logoDocumentation
Rechercher

API Push v4

  • Envoyez une notification ou un message à un seul appareil ou à une liste d'appareils

  • Le contenu du push ne peut être qu'un seul objet push au format JSON

  • Pour les fonctions liées aux tags/alias, veuillez vous référer à AppPushAPI.

Ceci est la dernière version de l'API Push. Les améliorations de la version v4 sont les suivantes :

  • Utilisez l'authentification HTTP Basic pour autoriser l'accès. Ainsi, toute la requête API peut être effectuée à l'aide d'outils HTTP courants, tels que curl et des extensions de navigateur.
  • Le contenu du push est au format JSON.

Limites de fréquence des requêtes

Notre API impose des limites sur la fréquence des appels afin de garantir la stabilité et l'équité du service. Les limites QPS (requêtes par seconde) pour chaque AppKey sont les suivantes :

  • Limite standard : 500 requêtes maximum par seconde.
  • Limite avancée : Si vous êtes abonné à notre offre payante et que votre AppKey payante nécessite une limite QPS supérieure, veuillez contacter notre équipe commerciale : Sales@engagelab.com.

Validation des appels

Pour plus d'informations, consultez la méthode d'authentification

Adresse d'appel

POST v4/push
              
              POST v4/push

            
Afficher ce bloc de code dans la fenêtre flottante

Exemples de requêtes

En-tête de la requête

> POST /v4/push HTTP/1.1 > Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
              
              > POST /v4/push HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==

            
Afficher ce bloc de code dans la fenêtre flottante

Corps de la requête

{ "from": "push", "to": "all", "body": { "platform": "web", "notification": { "alert": "Hi,MTPush !", // optionnel "web": { "alert": "web_push", "title": "web_push", "url": "http://www.google.com", "extras": { "web-key1": "web-value1" } } } }, "request_id": "12345678", "custom_args": "informations business" }
              
              {
    "from": "push",
    "to": "all",
    "body": {
        "platform": "web",
        "notification": {
            "alert": "Hi,MTPush !", // optionnel
            "web": {
                "alert": "web_push",
                "title": "web_push",
                "url": "http://www.google.com",
                "extras": {
                    "web-key1": "web-value1"
                }
            }
        }
    },
    "request_id": "12345678",
    "custom_args": "informations business"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de la requête

La structure des paramètres du push, détaillée dans le tableau suivant.

Mot-clé Type Option Description
from String Optionnel Expéditeur business actuel
to String ou Objet JSON Obligatoire Cible d'envoi
body Objet JSON Obligatoire Corps de la requête d'envoi
platform String ou Tableau JSON Obligatoire Plateforme de push
notification Objet JSON Optionnel
  • Le corps de la notification, c'est le contenu poussé au client.
  • Avec message, l'un des deux est obligatoire, ils ne peuvent pas coexister.
  • message Objet JSON Optionnel
  • Le corps du message, c'est le contenu poussé au client.
  • Avec notification, l'un des deux est obligatoire, ils ne peuvent pas coexister.
  • options Objet JSON Optionnel Paramètres de push
    request_id String Optionnel Champ optionnel personnalisé utilisé par le client pour identifier la requête et retourné dans la réponse.
    custom_args Objet JSON Optionnel Champs optionnels personnalisés par le client, retournés lors du callback.

    from

    L'expéditeur du business actuel. La valeur est de type String et est optionnelle.

    Exemples de requêtes

    { "from": "push" }
                  
                  {
        "from": "push"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    to

    Objet de l'appareil cible du push, indiquant la liste des appareils à qui le push peut être envoyé. Confirmez l'objet de l'appareil cible. MTPush propose deux méthodes : Registration ID et diffusion.

    Cible du push

    Mot-clé Type Signification Description Remarque
    all String Diffusion Push à tous les appareils Push vers les appareils actifs dans les 30 derniers jours.
    registration_id Tableau JSON Registration ID Tableau. La relation entre plusieurs registration_id est OU, c'est-à-dire l'union. L'ID de l'appareil. Maximum de 1 000 messages par envoi.
    tag Tableau JSON Tag Tableaux. La relation entre plusieurs tags est OU, c'est-à-dire la concaténation. Utilisez des tags pour effectuer des sous-groupes d'attributs d'appareils ou d'utilisateurs.
  • Jusqu'à 20 tags par envoi.
  • Composition valide : lettres (sensible à la casse), chiffres, underscores, caractères chinois.
  • Limite : chaque tag limité à 40 octets. (Encodage UTF-8 pour la longueur)
  • tag_and Tableau JSON Tag AND Tableau. Plusieurs tags sont en relation ET, c'est-à-dire l'intersection. À distinguer des tags, jusqu'à 20 à la fois.
    tag_not Tableau JSON Tag NOT Tableau. Pour plusieurs tags, l'ensemble fusionné est d'abord calculé, puis le complémentaire est pris. Jusqu'à 20 par envoi.
    alias Tableau JSON Alias Tableau. Plusieurs alias sont en relation OU, c'est-à-dire concaténation. Identifiez un utilisateur avec un alias.
  • Un appareil ne peut être lié qu'à un alias et vice versa.
  • Jusqu'à 1 000 par envoi.
  • Composition valide : lettres (sensible à la casse), chiffres, underscores, caractères chinois.
  • Limite : chaque alias limité à 40 octets. (Encodage UTF-8 pour la longueur)

  • La relation implicite entre plusieurs valeurs dans un tableau est OU, c'est-à-dire la concaténation ; cependant, tag_and est différent car la relation entre plusieurs valeurs dans un tableau est ET, c'est-à-dire l'intersection.

    Si tag_not est utilisé seul, nous effectuerons le traitement tag_not parmi les utilisateurs de diffusion.

    Ces types peuvent coexister. La relation implicite entre plusieurs polynômes lors de la coexistence est ET, c'est-à-dire l'intersection. Par exemple :

    "to" : {"tag" : [ "tag1", "tag2"],
    "tag_and" : ["tag3", "tag4"],
    "tag_not" : ["tag5", "tag6"]
    }
    

    Calculez d'abord le résultat du champ "tag" tag1 ou tag2 = A;
    Puis calculez le résultat du champ "tag_and" tag3 et tag4 = B;
    Puis calculez le résultat du champ "tag_not" non (tag5 ou tag6) = C;
    Le résultat final de "to" est A et B et C.


    Exemples de requêtes

    • Push vers tous (diffusion):
    { "to": "all" }
                  
                  {
      "to": "all"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante
    • Push vers plusieurs registration_id:
    { "to": { "registration_id": [ "4312kjklfds2", "8914afd2", "45fdsa31" ] } }
                  
                  {
      "to": {
        "registration_id": [
          "4312kjklfds2",
          "8914afd2",
          "45fdsa31"
        ]
      }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    body

    Le corps de la requête. Les champs pris en charge sont les suivants:

    Mot-clé Type Option Description
    platform String ou Tableau JSON Obligatoire Plateforme de push
    notification Objet JSON Optionnel
  • Le corps de la notification, c'est le contenu poussé au client.
  • Avec message, l'un des deux est obligatoire, ils ne peuvent pas coexister.
  • message Objet JSON Optionnel
  • Le corps du message, c'est le contenu poussé au client.
  • Avec notification, l'un des deux est obligatoire, ils ne peuvent pas coexister.
  • options Objet JSON Optionnel Paramètres de push

    platform

    MTPush prend actuellement en charge uniquement le push sur la plateforme Web, donc la valeur du mot-clé platform est "web".

    { "platform" : "web" }
                  
                  { "platform" : "web" }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    notification

    L'objet notification est l'un des objets de contenu de push (l'autre étant message) et est envoyé sur le web en tant que notification.

    Mot-clé Type Option Signification Description
    web Objet JSON Obligatoire Propriétés de la plateforme Paramètres de push de la plateforme, voir web

    web

    Notifications sur la plateforme Web

    Mot-clé Type Option Signification Description
    alert String ou Objet JSON Obligatoire Contenu Le contenu du message lui-même, spécifié ici, écrase l'information alert spécifiée par le niveau supérieur.
    url String Obligatoire url du push web Adresse de redirection au clic sur la notification
    title String Optionnel Titre Titre du message
    extras Objet JSON Optionnel Champs étendus Vous pouvez personnaliser ici les informations Key/Value au format JSON pour un usage business.
    icon String Optionnel icône de notification Recommandé 192*192px, pas de limite obligatoire ; taille maximale 1M, formats : JPG, PNG, GIF, support Chrome, Firefox (Safari et Edge ne permettent pas la personnalisation par défaut)
    image String Optionnel Grande image pour la notification Recommandé 360*180px, pas de limite obligatoire ; taille maximale 1M, formats : JPG, PNG, GIF, Chrome, Edge supportés (Firefox et Safari non supportés)
    { "notification": { "web": { "alert": "hello, Push!", "title": "Test Push", "url": "http://www.google.com", "icon": "", "image": "", "extras": { "news_id": 134, "my_key": "une valeur" } } } }
                  
                  {
        "notification": {
            "web": {
                "alert": "hello, Push!",
                "title": "Test Push",
                "url": "http://www.google.com",
                "icon": "",
                "image": "",
                "extras": {
                    "news_id": 134,
                    "my_key": "une valeur"
                }
            }
        }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    message

    Messages In-App ou messages personnalisés. Cette partie du contenu n'est pas affichée dans le navigateur. Après réception, le SDK le transmet au Web, qui traite la logique business.

    Le message contient les champs suivants:

    Mot-clé Type Option Description
    msg_content String ou Objet JSON Obligatoire Contenu du message
    title String Optionnel Titre du message
    content_type String Optionnel Type de contenu du message
    extras Objet JSON Optionnel Paramètres optionnels au format JSON

    Exemple:

    { "message": { "msg_content": "Hi,Push", "content_type": "text", "title": "msg", "extras": { "key": "valeur" } } }
                  
                  {
      "message": {
        "msg_content": "Hi,Push",
        "content_type": "text",
        "title": "msg",
        "extras": {
          "key": "valeur"
        }
      }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    options

    Options de push. Les options suivantes sont disponibles:

    Mot-clé Type Option Signification Description
    time_to_live Int ou String Optionnel Durée de rétention du message hors ligne (secondes)
  • Si l'utilisateur est hors ligne lors du push, les messages hors ligne peuvent être conservés pendant la durée spécifiée pour être envoyés à nouveau lorsque l'utilisateur se connecte.
  • Par défaut 86400 (1 jour), maximum 15 jours. Si la valeur maximale supportée par le navigateur système est inférieure à la valeur transmise, la valeur maximale du système s'applique.
  • 0 signifie que les messages hors ligne ne sont pas conservés, seuls les utilisateurs en ligne reçoivent le push.
  • override_msg_id Long Optionnel ID du message à écraser Si le push actuel doit écraser un push précédent, renseignez ici le msg_id du push précédent pour obtenir l'effet d'écrasement, c'est-à-dire :
  • Le message hors ligne reçu pour ce msg_id sera le contenu écrasé. Même si le msg_id a déjà été reçu par l'utilisateur sur le web, si la barre de notification n'a pas été effacée, le nouveau message écrasera la notification précédente.
  • La fonction d'écrasement est effective pendant 1 jour. Si le msg_id spécifié n'existe pas dans ce délai, erreur 1003 retournée, opération d'écrasement invalide, le message n'est pas envoyé.
  • big_push_duration Int Optionnel Durée du push échelonné (minutes)
  • Aussi appelé push lent, il réduit la vitesse de push maximale, répartissant le push sur n minutes ; valeur max 1440.
  • Maximum 20 push échelonnés simultanés.
  • Si non défini, pas de push échelonné.
  • web_buttons Objet JSON Optionnel Ajouter des boutons aux notifications
  • Maximum 2 boutons.
  • Noms et liens de redirection configurables. Voir web_buttons.
  • multi_language Objet JSON Optionnel Paramètres de push multilingues Paramètres d'adaptation multilingue pour le contenu du push. Voir multi_language.
    third_party_channel Objet JSON Optionnel Informations de configuration du canal système Web Paramètre valide uniquement pour les utilisateurs configurés avec des canaux système. Voir third_party_channel.
    plan_id String Optionnel Identifiant du plan de push Une valeur d'identifiant de plan doit être créée au préalable, via la console ou l'API.
    cid String Optionnel Identifiant de la requête de push pour éviter les doublons Lettres, chiffres, underscores, tirets autorisés, 64 caractères max. Ce champ doit être unique pour un même AppKey.

    multi_language

    Ce champ correspond à la fonction de push multilingue du service Push EngageLab. Il vous permet d'envoyer un contenu de notification personnalisé selon la langue de l'utilisateur. En spécifiant plusieurs langues et leur contenu, titre et sous-titre iOS dans la requête, vous pouvez envoyer la notification adaptée à la langue de l'utilisateur.

    Paramètres de la requête
    Mot-clé Type Option Signification Description
    en string Optionnel Clé multilingue Correspond à la langue de l'utilisateur, voir l'annexe pour les codes de langue
    content string Optionnel Contenu du message Remplace notification.web.alert, message.msg_content selon la langue de l'utilisateur
    title string Optionnel Titre du message Remplace notification.web.title, message.title selon la langue de l'utilisateur
    Exemple de requête
    { "options": { "multi_language": { "en": { "content": "", "title": "" } } } }
                  
                  {
      "options": {
        "multi_language": {
          "en": {
            "content": "",
            "title": ""
          }
        }
      }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante
    Exemple de réponse
    En cas de succès : { } En cas d'échec : { "code": 400, "data": "", "message": "Information d'erreur" }
                  
                  En cas de succès :
    {
       
    }
    
    En cas d'échec :
    {   
        "code": 400,  
        "data": "",
      "message": "Information d'erreur"
    }   
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    web_buttons

    Utilisez le paramètre web_buttons pour décrire l'id, le texte, l'icône et l'url du bouton. Les descriptions des paramètres sont les suivantes :

    Mot-clé Type Options Signification Description
    id Obligatoire String id du bouton Pris en charge à partir de la version chrome48+
    text Obligatoire String contenu du bouton Pris en charge à partir de la version chrome48+
    icon Optionnel String icône du bouton Pris en charge à partir de la version chrome50+
    url Obligatoire String lien de redirection du bouton Pris en charge à partir de la version chrome48+. Si web_buttons est utilisé, le champ url du paramètre web n'est pas pris en compte

    Exemple d'appel :

    [ { "id": "like-button", "text": "Like", "icon": "http://i.imgur.com/N8SN8ZS.png", "url": "https://yoursite.com" }, { "id": "read-more-button", "text": "Read more", "icon": "http://i.imgur.com/MIxJp1L.png", "url": "https://yoursite.com" } ]
                  
                  [
      {
        "id": "like-button",
        "text": "Like",
        "icon": "http://i.imgur.com/N8SN8ZS.png",
        "url": "https://yoursite.com"
      },
      {
        "id": "read-more-button",
        "text": "Read more",
        "icon": "http://i.imgur.com/MIxJp1L.png",
        "url": "https://yoursite.com"
      }
    ]
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    third_party_channel

    Ce champ sert à renseigner l'information personnalisée du canal système Web. Le nom de la clé est w3push, la valeur est un Objet Json. L'Objet contient un seul champ distribution optionnel de type String

    Mot-clé Type Option Signification Description
    distribution Obligatoire String Lorsque Engagelab et le canal système coexistent, définissez la priorité de livraison. La valeur ne peut pas être une chaîne vide.
  • first_ospush : le push est d'abord envoyé via le canal système, mais pas via Engagelab.
  • mtpush : le push est forcé via Engagelab.
  • secondary_push : Engagelab d'abord, puis canal système si Engagelab n'est pas en ligne (méthode recommandée).
  • ospush : push uniquement via le canal système.
  • Exemple :

    { "third_party_channel": { "w3push": { "distribution": "mtpush" } } }
                  
                  {
      "third_party_channel": {
        "w3push": {
          "distribution": "mtpush"
        }
      }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    request_id

    L'id de la requête. Le client identifie la requête et la réponse

    Exemples de requêtes

    { "request_id": "12345678" }
                  
                  {
      "request_id": "12345678"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Exemple de réponse

    custom_args

    Champ optionnel défini par l'utilisateur. Non retourné dans la réponse, mais retourné lors du callback.

    { "custom_args": "informations business" }
                  
                  {
      "custom_args": "informations business"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Paramètres de réponse

    Réponse de succès

    champ type option description
    request_id String Optionnel L'ID personnalisé soumis lors de la requête, retourné tel quel dans la réponse.
    msg_id String Obligatoire L'ID du message pour identifier de façon unique un message.
    < HTTP/1.1 200 OK < Content-Type: application/json {"request_id": "18", "msg_id": "1828256757"}
                  
                  < HTTP/1.1 200 OK
    < Content-Type: application/json
    {"request_id": "18", "msg_id": "1828256757"}
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Réponse d'échec

    Le code de statut http est 4xx ou 5xx et le corps de la réponse contient les champs suivants.

    Champ Type Option Description
    code int obligatoire le code d'erreur. Pour plus d'informations, voir la description return-code
    message String obligatoire détails de l'erreur
    { "code": 3002, "message": "Le champ Push.template doit être correctement défini lorsque le type est template" }
                  
                  {
        "code": 3002,
        "message": "Le champ Push.template doit être correctement défini lorsque le type est template"
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Réponse

    Code de statut HTTP

    Références : HTTP-Status-Code

    Code de retour

    Code Description Explication détaillée Code de statut HTTP
    20101 Le paramètre de push est invalide. Le registration_id est invalide ou n'appartient pas à l'appkey actuelle. 400
    21001 Seules les méthodes HTTP Post sont prises en charge. La méthode Get n'est pas prise en charge. 405
    21002 Paramètres obligatoires manquants. Doit être corrigé 400
    21003 Valeur de paramètre invalide Doit être corrigé 400
    21004 Échec de la vérification. Doit être corrigé. Voir la vérification d'appel. 401
    21005 Le corps du message est trop volumineux. Doit être corrigé. La longueur de la Notification doit être limitée à 2048 octets. 400
    21008 Le paramètre app_key est invalide. Doit être corrigé. Vérifiez si l'appkey transmise correspond à celle de l'application et s'il n'y a pas d'espaces en trop. 400
    21009 Erreur interne du système Doit être corrigé 400
    21011 Aucun appareil cible ne correspond aux conditions. Veuillez vérifier 400
    21015 Échec de la vérification des paramètres de la requête. Paramètres inattendus 400
    21016 Échec de la vérification des paramètres de la requête. Le type ou la longueur du paramètre est incorrect(e) ou dépasse la limite. 400
    21030 Délai d'attente du service interne Réessayez plus tard 503
    23006 Erreur de paramètre La valeur maximale de big_push_duration est 1440. 400
    23008 Limite de vitesse de l'interface L'interface push d'une application atteint la limite supérieure (500 qps) 400
    27000 Erreur de mémoire système Veuillez réessayer 500
    27001 Erreur de paramètre L'information de vérification est vide. 401
    27008 Erreur de paramètre La distribution dans third_party_channel n'est pas vide, mais le contenu alert de la notification est vide. 401
    27009 Erreur de paramètre Le format de distribution dans third_party_channel est invalide ou vide. 401

    Restrictions de push

    Canal Longueur du sujet Longueur du contenu Autres indications
    Engagelab Pas de limite, mais limite sur la taille totale du corps du message Pas de limite, mais limite sur la taille totale du corps du message La longueur de Notification MTPush est limitée à 4000 octets.
    Canal système <20 caractères (40 caractères anglais)
  • Le centre de notifications et l'écran verrouillé affichent jusqu'à 110 caractères et 55 caractères chinois.
  • 62 caractères max et 31 caractères chinois dans la fenêtre pop-up, le reste est tronqué avec des points de suspension.
  • Aucun

    Code langue multi-langue

    Langue Code
    Anglais en
    Arabe ar
    Chinois (Simplifié) zh-Hans
    Chinois (Traditionnel) zh-Hant
    Tchèque cs
    Danois da
    Néerlandais nl
    Français fr
    Allemand de
    Hindi hi
    Italien it
    Japonais ja
    Coréen ko
    Malais ms
    Russe ru
    Espagnol es
    Thaï th
    Vietnamien vi
    Indonésien id
    Norvégien no
    Suédois sv
    Polonais pl
    Turc tr
    Hébreu he
    Portugais pt
    Roumain ro
    Hongrois hu
    Finnois fi
    Grec el
    Ukrainien uk
    Lao lo
    Portugais (Portugal) pt_PT
    Portugais (Brésil) pt_BR
    Espagnol (Argentine) es_AR
    Espagnol (Espagne) es_ES
    Espagnol (Amérique latine) es_419
    icon
    Contactez-nous