Messages Apple pris en charge pour les fonctionnalités professionnelles

Pour les compétences que vous exposez au moyen des canaux Apple Messages for Business dans Oracle Digital Assistant, vous pouvez utiliser des fonctions propres à Apple Messages for Business en plus des fonctions généralement prises en charge sur d'autres canaux.

Pour ce faire, vous utilisez généralement l'élément channelCustomProperties dans les composants de réponse commune pour insérer des propriétés propres à Apple.

Le code a le format suivant :

...
            channelCustomProperties:
            - channel: "apple"
              properties:
                PROPERTY_NAME: "PROPERTY_VALUE"
...

Lien enrichi

Pour incorporer des messages de lien enrichi dans les canaux Apple Messages pour les entreprises, vous utilisez la propriété personnalisée du canal richLinkData et sa sous-propriété assets. La propriété assets peut prendre un objet image ou un objet video, comme illustré dans cet exemple :

channelCustomProperties:
  - channel: "apple"
    properties:
      richLinkData:
        assets:
          image:
            data: "<base-64-encoded image data>"
            mimeType: "image/jpeg"
          video:
            mimeType: "video/mp4",
            url: "https://example.com/example.mov"

Exemple : Image de lien enrichi

responseItems:
  - type: "text"
    text: "iPad Pro"
    actions:
      - type: "url"
        url: "https://www.apple.com/ipad-pro/"
    channelCustomProperties:
      - channel: "apple"
        properties:
          richLinkData:
            assets:
              image:
                data: "<base 64 encoded image data>"
                mimeType: "image/jpeg"

Exemple : Vidéo Rich Link

responseItems:
  - type: "text"
    text: "HomePod"
    actions:
    - type: "url"
      url: "https://images.apple.com/media/films/expand/homepod-expand-tpl-cc-us-20180306_1280x720h.mp4"
    channelCustomProperties:
    - channel: "apple"
      properties:
         richLinkData:
            assets:
              image:
                data: "<base 64 encoded image data>"
                mimeType: "image/jpeg"
              video:
                mimeType: "video/mp4",
                url: "https://store.storevideos.cdn-apple.com/v1/store.apple.com/st/1619042871000/mx532-

Réponse rapide

Le type de message Réponse rapide est une convention utilisée dans Apples Messages for Business pour fournir deux à cinq réponses prédéfinies qu'un utilisateur peut sélectionner d'un seul geste.

Vous pouvez définir le texte sommaire de la réponse rapide à l'aide de la propriété personnalisée de canal summaryText :

channelCustomProperties:
  - channel: apple
    properties:
      summaryText: Your selection

Si vous ne fournissez pas la propriété summaryText, le canal utilise la propriété text proprement dite.

En outre, gardez à l'esprit les conditions suivantes :

  • summaryText ne doit pas comporter plus de 25 caractères.
  • Pour les mots clés, vous utilisez A, B, C, D et E (au lieu des nombres).

Exemple : Réponse rapide

responseItems:
  - text: "You can type or select from the options below:"
    type: text
    actions:
      - payload:
          variables:
            menuAction: orderAccessories
          action: orderAccessories
        label: "Order Accessories"
        type: postback
        keyword: "A"
      - payload:
          variables:
            menuAction: checkOrder
          action: checkOrder
        label: "Check Order Status"
        type: postback
        keyword: "B"
    channelCustomProperties:
      - channel: apple
        properties:
          summaryText: Your selection

Sélecteur de liste

Apple Messages for Business a un type de message du sélecteur de liste que vous pouvez utiliser pour permettre aux utilisateurs de sélectionner une ou plusieurs options. Pour intégrer des messages List Picker dans les canaux Apple Messages for Business, vous utilisez les propriétés personnalisées de canal Apple suivantes :

  • images. Il s'agit d'une liste d'objets utilisés par les propriétés receivedMessage et replyMessage et qui contiennent les éléments suivants :
    • identifier : Identificateur utilisé pour référencer l'image par d'autres propriétés.
    • imageUrl : URL de l'image à afficher.
    • description.
  • receivedMessage. Il s'agit d'un objet avec les éléments facultatifs suivants :
    • imageIdentifier. Sa valeur doit correspondre à la propriété identifier de l'une des images définies dans la propriété personnalisée images.
    • style. Les valeurs possibles sont icon, small et large.
    • subtitle.
    • title.
  • replyMessage. Il s'agit d'un objet avec les éléments facultatifs suivants :
    • imageIdentifier. Sa valeur doit correspondre à la propriété identifier de l'une des images définies dans la propriété personnalisée images.
    • style. Les valeurs possibles sont icon, small et large.
    • subtitle.
    • title.
  • imageIdentifier. Vous pouvez utiliser cette propriété dans l'élément channelCustomProperties de l'élément options pour ajouter des images aux options du sélecteur. Sa valeur doit correspondre à la propriété identifier de l'une des images définies dans la propriété personnalisée images.

Vous pouvez créer des sélecteurs de liste à sélection unique à l'aide des types d'élément de réponse cards ou editForm.

Pour les sélecteurs de liste à sélection unique à l'aide de editForm :

  • Réglez displayType pour les éléments à "singleSelect".

Pour les sélecteurs de liste à sélection multiple, utilisez le type d'élément de réponse editForm :

  • Réglez displayType pour les éléments à "multiSelect".

Vous pouvez également créer des sélecteurs de liste avec plusieurs sections à l'aide de n'importe quelle combinaison de listes singleSelect et multiSelect. Pour ce faire, créez une entrée dans items pour chaque section et réglez displayType de chaque entrée à "singleSelect" ou "multiSelect", selon le type de liste souhaité pour cette section.

Exemple : Sélecteur de liste à sélection unique utilisant des cartes

responseItems:         
  - type: "cards"
    cardLayout: "horizontal"
    headerText: "Here are our pizzas you can order today:"
    visible:
      entitiesToResolve:
        include: "Type"
    cards:
      - title: "${enumValue}"
        description: ""
        imageUrl: "system.entityToResolve.value.image"
        iteratorVariable: "system.entityToResolve.value.enumValues"
        actions:
          - label: "Order Now"
            type: "postback"
            payload:
              variables:
                pizza: "${enumValue}"
    channelCustomProperties: 
      - channel: "apple"
        properties:
          images:
            - identifier: image1
              imageUrl: "https://example.com/url1.jpg"
            - identifier: image2
              imageUrl: "https://example.com/url2.jpg"
          receivedMessage:
            imageIdentifier: "image1"
            style: "small"
            subtitle: "Fresh baked for you"
            title: "Select Your Pizza"
          replyMessage:
            title: "Selected Pizza"
            style: "small"
            imageIdentifier: "image2"

Exemples : Sélection unique ListPicker à l'aide de editForm

responseItems:
  - headerText: "Let's start Shopping!"
    type: editForm
    formColumns: 1
    items:
      - displayType: singleSelect
        name: selectHeadset
        options:
          - label: "Logitech® G435 LIGHTSPEED Wireless Gaming Headset"
            value: LogitechG435
            channelCustomProperties:
              - channel: apple
                properties:
                    imageIdentifier: logitech g435
          - label: "JBL Live 660NC Wireless Over-Ear NC Headphones"
            value: JBL660NC
            channelCustomProperties:
              - channel: apple
                properties:
                    imageIdentifier: jbl 660nc
          - label: "Altec Lansing® 3-In-1, MZX4100-PGRN-STK-6"
            value: altec
            channelCustomProperties:
              - channel: apple
                properties:
                    imageIdentifier: altec
        label: Select the headset of your choice
        placeholder: Tap to select the product
        channelCustomProperties:
          - channel: apple
            properties:
                subtitle: Headset of your choice
        required: true
    actions:
      - processingMethod: mapVariable
        variable: skill.skillSelectedProduct
        label: Submit
        type: submitForm
    channelCustomProperties:
      - channel: apple
        properties:
            showSummary: true
            receivedMessage:
              imageIdentifier: main
              subtitle: Personalized search on basis of your requirements
              style: large
              title: "Tap & Select Headphones"
            images:
              - identifier: main
                imageUrl: "https://example.com/b/shopping-cart-headphones-23724543.jpg"
              - identifier: logitech g435
                imageUrl: "https://example.com/60_o01_040122/2310460.jpg"
                description: "Play never ends with G435."
              - identifier: jbl 660nc
                imageUrl: "https://example.com/7693360_o01/7693360.jpg"
                description: "Enjoy while studying or working out."
              - identifier: altec
                imageUrl: "https://example.com/18_o01_110422/5159518.jpg"
                description: "Simple setup."
            replyMessage:
              imageIdentifier: logitech g435
              subtitle: "Your cart is ready!"
              style: icon
              title: Tap to view your response.

ListPicker (Sélection multiple)

responseItems:
  - headerText: Choose the type of product you are looking
    type: editForm
    formColumns: 1
    items:
      - displayType: multiSelect
        name: features
        options:
          - label: Noise cancellation
            value: Noise cancellation
          - label: Microphone/Remote
            value: Microphone/Remote
          - label: Wireless
            value: Wireless
          - label: USB connectivity
            value: USB connectivity
          - label: Voice Assistant Support
            value: Voice Assistant Support
          - label: Fast Charging
            value: Fast Charging
        label: What features are you looking for?
        placeholder: Select multiple-values
        required: true
      - displayType: multiSelect
        name: usage
        options:
          - label: Attending Online Meetings
            value: Attending Online Meetings
          - label: Music
            value: Music
          - label: Casual usage
            value: Casual usage
          - label: Binge Watching
            value: Binge Watching
          - label: Jogging/Gym
            value: Jogging/Gym
        label: Your purpose of usage
        placeholder: Select multiple-values
        required: true
    actions:
      - processingMethod: mapVariable
        variable: requirementMap
        label: Submit
        type: submitForm
    channelCustomProperties:
      - channel: apple
        properties:
            receivedMessage:
              imageIdentifier: main
              subtitle: "Customize your product search!"
              style: icon
              title: "Tap & Provide your Preferences"
            images:
              - identifier: main
                imageUrl: "https://example.com/images/search-filter-icon.jpg"
              - identifier: filter
                imageUrl: "https://example.com/images/filter.jpg"
            replyMessage:
              imageIdentifier: filter
              style: icon

Sélecteur d'heure

Vous utilisez le type de message Sélecteur d'heure dans Apples Messages for Business pour offrir aux utilisateurs des créneaux horaires. Chaque élément de champ timePicker dans editForm correspond à un intervalle de temps que l'utilisateur peut sélectionner. Vous utilisez la propriété defaultValue pour définir l'heure de début et la propriété personnalisée du canal Apple duration pour définir la durée du créneau horaire en secondes. Il existe également des propriétés personnalisées de canal Apple pour timeZoneOffset et location.

Exemple : Sélecteur d'heure

responseItems:
  - headerText: "Select Date & Time for your appointment"
    type: editForm
    formColumns: 2
    items:
      - displayType: timePicker
        defaultValue: "2023-05-10T06:00Z"
        name: 27JanOne
        label: Slots available
        channelCustomProperties:
          - channel: apple
            properties:
              duration: 1800
        required: true
      - displayType: timePicker
        defaultValue: "2023-05-05T07:30Z"
        name: 27JanTwo
        label: Enter Time
        channelCustomProperties:
          - channel: apple
            properties:
              duration: 1800
        required: true
      - displayType: timePicker
        defaultValue: "2023-05-11T07:30Z"
        name: 24th
        label: another time
        channelCustomProperties:
          - channel: apple
            properties:
              duration: 1800
        required: true
    actions:
      - label: Submit
        type: submitForm
    channelCustomProperties:
      - channel: apple
        properties:
            receivedMessage:
              imageIdentifier: clock
              subtitle: "Every slot is of 30 mins.!"
              style: large
              title: "Tap & Select from available Slots"
            images:
              - identifier: clock
                imageUrl: "https://example.com/images/clock.png"
                description: clock
            timezoneOffset: 1200
            replyMessage:
              imageIdentifier: clock
              style: icon
              title: Selected Slot
            location:
              latitude: 28.605354
              radius: 1.5
              title: Supremo Customer Service Center
              longitude: 77.053546		

Formulaire Apple

Vous pouvez créer des messages de formulaire Apple à l'aide du type d'élément de réponse editForm avec une combinaison des types de champ suivants :

  • numberInput
  • textInput
  • datePicker
  • timePicker
  • singleSelect
  • multiSelect

En plus des propriétés de canal personnalisées dont vous avez besoin pour les différents champs du formulaire, vous utilisez les propriétés personnalisées de canal Apple suivantes pour le formulaire dans son ensemble :

  • submitForm, que vous réglez à true pour le dernier élément du formulaire.
  • pickerTitle, que vous pouvez éventuellement utiliser pour définir le texte affiché dans un champ de texte de sélecteur donné.
  • selectedItemIndex, que vous pouvez éventuellement utiliser pour régler au numéro d'index de l'élément que vous voulez sélectionner par défaut. La valeur par défaut est 0.

Vous définissez une page d'accueil pour le formulaire avec la propriété personnalisée de canal Apple splash. La propriété splash contient les éléments suivants :

  • header.
  • splashText.
  • buttonTitle. Texte affiché sur le bouton. Obligatoire.
  • imageIdentifier.

Exemple : Formulaire Apple

responseItems:
  - headerText: Provide Delivery Address details
    type: editForm
    formColumns: 1
    items:
      - displayType: textInput
        name: house_address
        label: House No.
        required: true
        maxLength: 100
        channelCustomProperties:
          - channel: apple
            properties:
              subtitle: Your House/Appartment No.
              options:
                keyboardType: numberPad
      - displayType: textInput
        name: street_address
        label: Street Name
        channelCustomProperties:
          - channel: apple
            properties:
              subtitle: Your Street Details
              options:
                keyboardType: default
        required: true
        maxLength: 200
      - displayType: numberInput
        name: zipcode
        label: Where do you live?
        placeholder: Enter your area zipcode
        channelCustomProperties:
          - channel: apple
            properties:
              subtitle: Zip-code
        required: true
    actions:
      - label: Submit
        type: submitForm
    channelCustomProperties:
      - channel: apple
        properties:
          showSummary: true
          receivedMessage:
            imageIdentifier: main
            subtitle: "Add your details carefully!"
            style: icon
            title: "Tap & Provide your Delivery details"
          images:
            - identifier: main
              imageUrl: "https://example.com/delivery-address.png"
            - identifier: saveAddress
              imageUrl: "https://example.com/successful-delivery.png"
          replyMessage:
            imageIdentifier: saveAddress
            style: icon
            title: Your address details are saved. Tap to review.
          splash:
            imageIdentifier: main

Authentification

Vous pouvez utiliser le composant OAuth Account Link de Digital Assistant pour les messages d'authentification dans Apple Messages for Business. Vous pouvez utiliser deux approches :

  • Dans la propriété Autoriser l'URL du composant de lien de compte OAuth, fournissez les paramètres d'interrogation responseType et scope.

    Une fois l'authentification réussie, elle retourne un code d'autorisation, que vous utilisez ensuite pour extraire un jeton d'accès.

  • Dans la propriété Autoriser l'URL du composant de lien de compte OAuth, fournissez les paramètres d'interrogation responseType, clientSecret et scope.

    Une fois l'authentification réussie, il retourne un jeton d'accès.

Application iMessage

Avec Apple Messages for Business, vous pouvez créer des messages de type iMessage App, qui sont des messages de données interactifs personnalisés. Pour que ces messages fonctionnent dans un canal Apple Messages for Business dans Digital Assistant, vous devez construire les données utiles interactives Apple dans la compétence elle-même à l'aide d'un composant personnalisé.

Le composant personnalisé doit envoyer un message CMM brut contenant les attributs de données utiles suivants :

  • type: interactive (obligatoire)
  • interactiveData :
    • appIcon
    • appId
    • appName
    • URL (obligatoire)
    • bid (obligatoire)
    • receivedMessage
    • replyMessage
    • useLiveLayout

Pour un tutoriel sur la création d'une application iMessage, voir Intégration de votre application iMessage dans la documentation d'Apple.

Pour plus d'informations sur l'utilisation du modèle de message commun de Digital Assistant, voir la section Messagerie de conversation de la documentation sur la trousse SDK de développement de robots.

Exemple : Données utiles de l'application iMessage

{
  "type": "interactive",
  "interactiveData": {
    "appId": 12345678,
    "appName": "Package Delivery",
    "URL": "?name=WWDC%20Goodies&deliveryDate=09-06-2017&destinationName=Moscone%20Convention%20Center&street=747%20Howard%20St&state=CA&city=San%20
Fransisco&country=USA&postalCode=94103&latitude=37%2E7831&longitude=%2D122%2E4041&extraCharge=15%2E00",
    "bid": "com.apple.messages.MSMessageExtensionBalloonPlugin:4R3L6Z3UP2:com.example.apple-samplecode.PackageDelivery4R3L6Z3UP2.MessagesExtension",
    "receivedMessage": {
      "title": "PackageDelivery",
      "subtitle": "Tap to Install the iMessage App from App Store"
    }
  }
}

ChannelCustomProperties pour les messages Apple pour les entreprises

Le nom Valeurs autorisées S'applique à... Description
images Objet imbriqué avec les propriétés suivantes :
  • imageUrl
  • identifier, qui est la chaîne par laquelle l'image est référencée à partir de l'élément imageIdentifier d'autres propriétés, telles que receivedMessage.
  • description, qui est une description textuelle facultative de l'image.
Éléments de réponse editForm. Images que vous définissez pour une utilisation dans des éléments de liste et d'autres endroits dans votre formulaire.
receivedMessage Objet imbriqué avec les propriétés suivantes, qui sont toutes facultatives :
  • imageIdentifier
  • style
  • subtitle
  • title
Éléments de réponse editForm Message qui apparaît au-dessus d'un sélecteur de liste ou d'un autre type de message.
replyMessage Objet imbriqué avec les propriétés suivantes, qui sont toutes facultatives :
  • imageIdentifier
  • style
  • subtitle
  • title
Éléments de réponse editForm Message qui s'affiche une fois que l'utilisateur a effectué une sélection avec un sélecteur donné.
location Objet imbriqué avec les propriétés suivantes :
  • latitude
  • longitude
  • radius
  • title
Éléments de réponse editForm. Fournit des coordonnées pour un emplacement donné.
showSummary
  • true
  • false
Éléments de réponse editForm. Si true, un sommaire des options sélectionnées par l'utilisateur s'affiche. La valeur par défaut est false.
splash Objet imbriqué avec les propriétés suivantes :
  • imageIdentifier
  • buttonTitle
  • header
  • splashText
Éléments de réponse editForm. Sert à définir une page de bienvenue pour le formulaire.
timeZoneOffset Un nombre Éléments de réponse editForm. Différence en minutes entre l'heure dans le fuseau horaire de l'emplacement et GMT.
imageIdentifier Chaînes correspondant à la valeur identifier pour toutes les images du tableau images. Objets du tableau options dans les éléments de réponse editForm. Utilisé pour appliquer une image à une option donnée dans les éléments de réponse de type editForm.
subtitle Toute chaîne. Éléments de réponse editForm. Sous-titre facultatif pour un sélecteur de liste.

Note : Les propriétés telles que receivedMessage et replyMessage comportent également un élément subtitle facultatif.

duration Un nombre. Éléments de réponse editForm avec une valeur displayType de timePicker Durée en secondes.
options Objet imbriqué avec des propriétés telles que keyboardType et dateFormat. Il existe des options distinctes pour les types de page datePicker et input. Voir la documentation sur le message de formulaire d'Apple. Éléments de réponse editForm avec une valeur displayType de datePicker et textInput. Catégorie de propriétés propres au canal Apple Messages for Business qui peut être utilisée sur des éléments individuels.

Note : Cette catégorie est distincte de l'élément options de l'élément items dans les éléments de réponse editForm.

submitForm
  • true
  • false
ou false
Sur des éléments individuels du type d'élément de réponse dataSet. Réglez à true si vous voulez que le formulaire soit envoyé lorsque l'élément est sélectionné. La valeur par défaut est false.
pickerTitle Chaîne Sur des éléments individuels du type d'élément de réponse dataSet. Valeur de chaîne représentant le texte facultatif affiché à côté du champ de texte du sélecteur. La valeur par défaut est une chaîne vide. Lorsque vide, le champ de texte du sélecteur est centré sur la page
selectedItemIndex Nombre Sur des éléments individuels du type d'élément de réponse dataSet. Facultativement, utilisez cette option pour définir le numéro d'index de l'article dans un sélecteur que vous souhaitez sélectionner par défaut. La valeur par défaut est 0.