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
etE
(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ésreceivedMessage
etreplyMessage
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é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 à 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 est0
.
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
etscope
.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
etscope
.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 :
|
É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 :
|
É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 :
|
É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 :
|
Éléments de réponse editForm .
|
Fournit des coordonnées pour un emplacement donné. |
showSummary |
|
É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 :
|
É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 |
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 |
submitForm |
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 .
|