Intégration Intercom.io pour les applications Ember.js.
Installez cet addon avec Ember-Cli ember install ember-intercom-io
Ajoutez le composant {{intercom-io}} à l'un de vos modèles ' Le widget de chat apparaîtra chaque fois que ce composant a été rendu et devrait disparaître chaque fois qu'il est détruit.
Dans votre fichier config/environment.js , vous devez fournir votre appId
module . exports = function ( environment ) {
...
intercom: {
appId : null , // <-- REPLACE WITH YOUR INTERCOM.IO app_id
enabled : true , // <-- Setting to false in your testing environment prevents unneccessary network requests (true by default)
userProperties : {
createdAtProp : 'createdAt' ,
emailProp : 'email' ,
nameProp : 'name' ,
userHashProp : 'hash' ,
userIdProp : 'id'
}
} ,
...
} ; Dans le monde Intercom.io, un prospect est un visiteur de votre site ou de votre application, sans e-mail ou nom associé. Un utilisateur a un nom et un e-mail, et est une bonne construction pour suivre l'historique de toutes les interactions avec une seule personne.
Vous pouvez sensibiliser ember-intercom-io d'un contexte "utilisateur" (passer en mode "utilisateurs" au lieu du mode "leads") en ajoutant un objet au service intercom (c'est-à-dire votre service d'authentification utilisateur).
Lorsque l'application met à jour l'objet intercom.user , les modifications seront envoyées à Intercom et reflétées dans votre tableau de bord Intercom.
app / services / authentication.js
import Service , { inject as service } from '@ember/service' ;
export default Service . extend ( {
intercom : service ( ) , // the intercom service
didLogin ( user ) {
...
this . get ( 'intercom' ) . set ( 'user.name' , 'Joe Username' ) ;
this . get ( 'intercom' ) . set ( 'user.email' , '[email protected]' ) ;
this . get ( 'intercom' ) . set ( 'user.createdAt' , 1447135065173 ) ;
}
} ) ; Pour envoyer des propriétés personnalisées à Intercom, ajoutez-les à l'objet intercom.user . Tous les noms de propriétés seront soulignés avant d'être envoyés. Les valeurs non définies seront supprimées (cependant, null est conservé).
let customProperties = {
myCustomThing : 1 ,
numberOfCats : false ,
notDefined : undefined
}
set ( this , 'intercom.user' , customProperties ) ;devient
{
my_custom_thing : 1 ,
number_of_cats : false
} Le service intercom expose plusieurs méthodes API publiques qui correspondent à l'API JavaScript existante d'Intercom.com. Pour plus de détails sur l'API client, lisez les documents Intercom.
| Nom | Taper |
|---|---|
| Autoupdate | Booléen |
| HidefaultLauncher | Booléen |
| isopen | Booléen |
| isolant | Booléen |
| dénouement | Entier |
| utilisateur | Objet |
Les méthodes d'interphone suivantes sont implémentées. Voir services/intercom.js pour plus de détails.
boot()
update()
shutdown()
hide()
show()
showMessages()
showNewMessage()
trackEvent()
getVisitorId() Renvoie l'ID actuel de l'utilisateur connecté.
startTour() Votre compte d'interphone doit prendre en charge les visites de produits
Abonnez-vous aux événements de votre application avec des auditeurs d'événements:
//fancy-component.js
...
intercom : service ( ) ,
newMessageAlert : on ( 'intercom.unreadCountChange' , function ( ) {
alert ( 'Unread Count Changed!' ) ;
} ) ,
...Événements disponibles
(Lisez la documentation Intercom pour tous les détails) [https://developers.intercom.com/v2.0/docs/intercom-javascript#section-intercomonhide]
| Événement en vigueur | Événement d'interphone |
|---|---|
| cacher | onHide |
| montrer | onShow |
| non lecture | onUnreadCountChange |
git clone ce référentielnpm installnpm run lint:hbsnpm run lint:jsnpm run lint:js -- --fixember test - Exécute la suite de tests sur la version actuelle de Emberember test --server - Exécute la suite de tests en "mode de montre"ember try:each - exécute la suite de test contre plusieurs versions Emberember servePour plus d'informations sur l'utilisation d'Ember-Cli, visitez http://www.ember-cli.com/.
Copyright (C) 2015 Levanto Financial, 2016-18 Mike Works, Inc.