ember.jsアプリのintercom.io統合。
Ember-Cli ember install ember-intercom-ioにこのアドオンをインストールします
{{intercom-io}}コンポーネントをテンプレートのいずれかに追加します。このコンポーネントがレンダリングされるたびにチャットウィジェットが表示され、破壊されるたびに消えます。
config/environment.jsファイルでは、 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'
}
} ,
...
} ; Intercom.ioの世界では、リードはあなたのサイトまたはアプリへの訪問者であり、それらに関連付けられた電子メールや名前はありません。ユーザーには名前と電子メールがあり、一人の人とのすべてのインタラクションの履歴を追跡するための良い構成要素です。
intercomサービス(つまり、ユーザー認証サービス)にオブジェクトを追加することにより、 ember-intercom-ioに「ユーザー」コンテキスト(「リード」モードの代わりに「ユーザー」モードにシフトする)を認識させることができます。
アプリケーションがintercom.userオブジェクトを更新すると、変更がインターコムに送信され、インターコムダッシュボードに反映されます。
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 ) ;
}
} ) ; カスタムプロパティをIntercomに送信するには、 intercom.userオブジェクトにそれらを追加します。すべてのプロパティ名は、送信される前に強調されます。未定義の値は削除されます(ただし、 nullは保持されます)。
let customProperties = {
myCustomThing : 1 ,
numberOfCats : false ,
notDefined : undefined
}
set ( this , 'intercom.user' , customProperties ) ;なります
{
my_custom_thing : 1 ,
number_of_cats : false
} intercomサービスは、Intercom.comの既存のJavaScript APIに一致するいくつかのパブリックAPIメソッドを公開します。クライアントAPIの詳細については、Intercom Docsをお読みください。
| 名前 | タイプ |
|---|---|
| AutOUPDATE | ブール |
| HidedEfaultLauncher | ブール |
| Isopen | ブール |
| ISBooted | ブール |
| UnreadCount | 整数 |
| ユーザー | 物体 |
次のインターコムメソッドが実装されています。詳細については、 services/intercom.jsを参照してください。
boot()
update()
shutdown()
hide()
show()
showMessages()
showNewMessage()
trackEvent()
getVisitorId()ログインしたユーザーの現在のIDを返します。
startTour()インターコムアカウントは、製品ツアーをサポートする必要があります
イベントリスナーと一緒にアプリのイベントを購読してください。
//fancy-component.js
...
intercom : service ( ) ,
newMessageAlert : on ( 'intercom.unreadCountChange' , function ( ) {
alert ( 'Unread Count Changed!' ) ;
} ) ,
...利用可能なイベント
(詳細については、インターコムのドキュメントをお読みください)[https://developers.intercom.com/v2.0/docs/intercom-javascript#section-intercomonhide]
| エンバーイベント | インターコムイベント |
|---|---|
| 隠れる | onHide |
| 見せる | onShow |
| UnreadCountChange | onUnreadCountChange |
git cloneこのリポジトリnpm installnpm run lint:hbsnpm run lint:jsnpm run lint:js -- --fixember test - 現在のEmberバージョンでテストスイートを実行しますember test --server - 「Watch Mode」でテストスイートを実行しますember try:each - 複数のEmberバージョンに対してテストスイートを実行しますember serveEmber-Cliの使用の詳細については、http://www.ember-com.com/をご覧ください。
Copyright(c)2015 Levanto Financial、2016-18 Mike Works、Inc。