Messages Apple pris en charge pour les fonctions métier
Pour les briques que vous affichez via les canaux Apple Messages for Business dans Oracle Digital Assistant, vous pouvez utiliser des fonctionnalités propres à Apple Messages for Business en plus des fonctionnalités 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 Common Response (Réponse commune) pour insérer des propriétés propres à Apple.
Le format du code est le suivant :
...
channelCustomProperties:
- channel: "apple"
properties:
PROPERTY_NAME: "PROPERTY_VALUE"
...
Lien enrichi
Pour incorporer des messages de lien enrichi dans les canaux Apple Messages for Business, vous utilisez la propriété personnalisée de canal richLinkData
et sa sous-propriété assets
. La propriété assets
peut prendre un objet image
ou video
, comme indiqué 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 de lien enrichi
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 simple appui.
Vous pouvez définir le texte récapitulatif 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
à la place.
En outre, tenez compte des points suivants :
summaryText
ne doit pas comporter plus de 25 caractères.- Pour les mots-clés, utilisez
A
,B
,C
,D
etE
(au lieu de chiffres).
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 de sélecteur de liste que vous pouvez utiliser pour permettre aux utilisateurs de sélectionner des options. Pour intégrer des messages de sélecteur de liste dans les canaux Apple Messages for Business, vous utilisez les propriétés personnalisées de canal Apple suivantes :
images
. Voici la liste des objets utilisés par les propriétésreceivedMessage
etreplyMessage
et qui contiennent les éléments suivants :identifier
: identificateur par lequel l'image est référencée 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éeimages
.style
. Les valeurs possibles sonticon
,small
etlarge
.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éeimages
.style
. Les valeurs possibles sonticon
,small
etlarge
.subtitle
.title
.
imageIdentifier
. Vous pouvez utiliser cette propriété dans l'élémentchannelCustomProperties
de l'élémentoptions
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éeimages
.
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 utilisant editForm
:
- Définissez
displayType
pour les éléments sur"singleSelect"
.
Pour les sélecteurs de liste à sélection multiple, utilisez le type d'élément de réponse editForm
:
- Définissez
displayType
pour les éléments sur"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 définissez displayType
de chaque entrée sur "singleSelect"
ou "multiSelect"
, en fonction du type de liste souhaité pour cette section.
Exemple : sélecteur de liste à sélection unique à l'aide de 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 : ListPicker à sélection unique à 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 de temps dans Messages Apple pour les entreprises pour offrir aux utilisateurs des créneaux horaires. Chaque élément de champ timePicker
dans editForm
correspond à un créneau horaire que l'utilisateur peut choisir. Vous utilisez la propriété defaultValue
pour définir l'heure de début et la propriété personnalisée de canal Apple duration
pour définir la durée de l'intervalle en secondes. Il existe également des propriétés personnalisées de canal Apple pour timeZoneOffset
et location
.
Exemple : Time Picker
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
Outre les 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 l'ensemble du formulaire :
submitForm
, que vous définissez surtrue
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 définir le numéro d'index de l'élément à sélectionner par défaut. Valeur par défaut :0
.
Vous définissez une page de bienvenue 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 figurant 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 l'assistant numérique pour les messages d'authentification dans Apple Messages for Business. Vous pouvez utiliser deux approches :
- Dans la propriété Autoriser l'URL du composant Lien de compte OAuth, indiquez les paramètres de requête
responseType
etscope
.Une fois l'authentification réussie, il renvoie un code d'autorisation, que vous utilisez ensuite pour extraire un jeton d'accès.
- Dans la propriété Autoriser l'URL du composant Lien de compte OAuth, indiquez les paramètres de requête
responseType
,clientSecret
etscope
.Une fois l'authentification réussie, un jeton d'accès est renvoyé.
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 la charge utile de données interactive Apple dans la brique elle-même à l'aide d'un composant personnalisé.
Le composant personnalisé doit envoyer un message CMM (Common Message Model) brut contenant les attributs de charge utile suivants :
type: interactive
(obligatoire)interactiveData
:appIcon
appId
appName
URL
(obligatoire)bid
(obligatoire)receivedMessage
replyMessage
useLiveLayout
Pour obtenir un tutoriel sur la création d'une application iMessage, reportez-vous à 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, reportez-vous à la section Messagerie de conversation de la documentation du kit SDK Bots Node.
Exemple : iMessage Charge utile de l'application
{
"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 Apple Messages for Business
Nom | Valeurs autorisées | Applicable à... | Description |
---|---|---|---|
images |
Objet imbriqué avec les propriétés suivantes :
|
editForm éléments de réponse.
|
Images que vous définissez pour utilisation dans les éléments de liste et d'autres emplacements de votre formulaire. |
receivedMessage |
Objet imbriqué avec les propriétés suivantes, qui sont toutes facultatives :
|
editForm éléments de réponse
|
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 :
|
editForm éléments de réponse
|
Message qui apparaît une fois que l'utilisateur a effectué une sélection avec un sélecteur donné. |
location |
Objet imbriqué avec les propriétés suivantes :
|
editForm éléments de réponse.
|
Fournit les coordonnées d'un emplacement donné. |
showSummary |
|
editForm éléments de réponse.
|
Si true , un récapitulatif des options sélectionnées par l'utilisateur s'affiche. Valeur par défaut : false .
|
splash |
Objet imbriqué avec les propriétés suivantes :
|
editForm éléments de réponse.
|
Permet de définir une page de bienvenue pour le formulaire. |
timeZoneOffset |
Un nombre | editForm éléments de réponse.
|
Différence en minutes entre l'heure dans le fuseau horaire du lieu et GMT. |
imageIdentifier |
Chaînes qui correspondent à la valeur identifier pour toutes les images du tableau images .
|
Objets du tableau options dans les éléments de réponse editForm .
|
Permet d'appliquer une image à une option donnée dans les éléments de réponse de type editForm .
|
subtitle |
toute chaîne. | editForm éléments de réponse.
|
Sous-titre facultatif pour un sélecteur de liste.
Remarque : les propriétés telles que |
duration |
Un nombre. | Eléments de réponse editForm avec une valeur displayType de timePicker |
Nombre de secondes de la durée. |
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 . Reportez-vous à la documentation sur les messages de formulaire d'Apple.
|
Eléments de réponse editForm avec la valeur displayType datePicker et textInput .
|
Catégorie de propriétés propres au canal Apple Messages for Business qui peut être utilisée sur des articles individuels.
Remarque : cette catégorie est distincte de l'élément |
submitForm |
false |
Sur des éléments individuels du type d'élément de réponse dataSet .
|
Définissez la valeur sur true si vous voulez que le formulaire soit envoyé lorsque l'élément est sélectionné. Valeur par défaut : 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é en regard du champ de texte du sélecteur. La valeur par défaut est une chaîne vide. Lorsque le champ de texte du sélecteur est vide, il est centré sur la page |
selectedItemIndex |
Nombre | Sur des éléments individuels du type d'élément de réponse dataSet .
|
Vous pouvez éventuellement utiliser 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. Valeur par défaut : 0 .
|