世界130億超のAmazonConnectユーザのみなさん、こんにちは。
UIをカスタマイズしてAmazonConnectを使いたい!!
そんな皆さんの強い味方であるamazon-connect-stream、便利ですよね。
ですが、TypeScriptから利用するにはヒトクセあります。
What is ヒトクセ?
- npmに公開されてない
- 公式Docを参考にgulpでbuildしてもimportできない
- npm i aws/amazon-connect-streams –saveしてもimportできない(実体がない)
- でもindex.d.tsはある
こんな具合でできそうでできない…グヌヌって感じな癖があります。
解決策
- 公式Docを参考にgulpでbuild
- index.d.tsと同じDirectoryにいれる
これだけです。
構成やファイルは以下を参考にしてください。
サンプルはAngularです。
ディレクトリ構成
/app/Modules/Connect /index.d.ts /index.js
app.component.ts
import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core'; import './module/index'; import Endpoint = connect.Endpoint; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent implements AfterViewInit { title = 'applicatioin'; state: string; @ViewChild('ccp') ccpContainer: ElementRef; ngAfterViewInit() { connect.core.initCCP(this.ccpContainer.nativeElement, { ccpUrl: 'https://YOUR-ENDPOINT.awsapps.com/connect/ccp#', softphone: { allowFramedSoftphone: true, }, }); connect.agent(agent => { // ここで自分のステータスを出してみた this.state = JSON.stringify(agent.getState()); const phoneNumber = '+819012341234'; const endpoint = Endpoint.byPhoneNumber(phoneNumber); // 電話かけてみた agent.connect(endpoint, {}); }); } }
コレ、いい感じに補完が効いてますし、カスタマイズしたUIから電話の発信までできました!
おまけ
connection.core.initCCP()の ccpUrlの最後に/
が入ってると駄目だったのも注意点です。