Upload
Download free for 30 days
Login
Submit Search
IPメッセージングはこうやって実装するのだ!
0 likes
716 views
Sakae Saito
2016/5/13 TwilioJP-UG 札幌 第3回 セッション資料
Technology
Read more
1 of 58
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
More Related Content
PDF
ラクガキ忍者制作秘話
koppepan
DOC
New master resume-rakesh
Rakesh Patel
DOCX
Gene Furr - Linked
Gene Furr
PPTX
Ireland’s Transboundary Monitoring Network and EMEP Strategy - Michael Geever...
Environmental Protection Agency, Ireland
PDF
Chris Hartley & Tara Dias presentation
mhcc
DOCX
DW RESUME
Darlene Williams
PPTX
Caroline Atkinson & Judy Atkinson presentation
mhcc
PDF
Twilio API を PHP で触ってみよう
Masashi Shinbara
ラクガキ忍者制作秘話
koppepan
New master resume-rakesh
Rakesh Patel
Gene Furr - Linked
Gene Furr
Ireland’s Transboundary Monitoring Network and EMEP Strategy - Michael Geever...
Environmental Protection Agency, Ireland
Chris Hartley & Tara Dias presentation
mhcc
DW RESUME
Darlene Williams
Caroline Atkinson & Judy Atkinson presentation
mhcc
Twilio API を PHP で触ってみよう
Masashi Shinbara
Viewers also liked
(9)
DOCX
Trabajo de-pausas-activas
Yulissa Cortez
PPTX
今日からでもできる!とある企業のtwilio活用方法
Yoshimasa Yaguma
PDF
Minimal Techno in The Global City
J. Peter Siriprakorn
PDF
僕がTwilioを使ってやりたいと思っていること 2016・夏
Sakae Saito
PDF
Brian Raymond Resume 8.25.14
Brian Raymond
PPTX
Emission measurement techniques in automobiles
akhil rao
PPTX
Wekerle CIHR Team - Physical and Mental Health of Sexually Abused Boys a Fiv...
Christine Wekerle
PPTX
Wekerle CIHR Team - Post-Traumatic Growth 7 steps to G.R.A.C.E
Christine Wekerle
PDF
Listino d max-fr_2015f1d80228-d0bf-46b2-b50d-4b28de7c9e87
FERCHICHI BELGACEM
Trabajo de-pausas-activas
Yulissa Cortez
今日からでもできる!とある企業のtwilio活用方法
Yoshimasa Yaguma
Minimal Techno in The Global City
J. Peter Siriprakorn
僕がTwilioを使ってやりたいと思っていること 2016・夏
Sakae Saito
Brian Raymond Resume 8.25.14
Brian Raymond
Emission measurement techniques in automobiles
akhil rao
Wekerle CIHR Team - Physical and Mental Health of Sexually Abused Boys a Fiv...
Christine Wekerle
Wekerle CIHR Team - Post-Traumatic Growth 7 steps to G.R.A.C.E
Christine Wekerle
Listino d max-fr_2015f1d80228-d0bf-46b2-b50d-4b28de7c9e87
FERCHICHI BELGACEM
Ad
Similar to IPメッセージングはこうやって実装するのだ!
(20)
PDF
【B-1】kintoneでお手軽コールセンター!
Sakae Saito
PDF
Twilioが動いているところを見てみよう(仮)
Sakae Saito
PDF
30分で知るTwilio 2016
Sakae Saito
PDF
20130927 MA9 東京ハッカソン発表資料
Joohoun Song
PDF
Twilio x AITalk 勉強会資料
Katsumi Takahashi
PDF
AWSアイデアソン20150509
Noriyuki Koide
PDF
Twilio jpug大阪(掲載用)20160227
Noriyuki Koide
PDF
日本語消えたスライド
Masashi Shinbara
PDF
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Masashi Shinbara
PDF
第0回 Twilio勉強会 with JAWS UG in 福岡
Youhei Iwasaki
PPTX
Twilio Meetup 2014/11/27
Toshiro Yagi
PDF
地方とTwilioJP-UGの素敵な関係
Hiroyuki Hiki
PPTX
twilio-ug福岡 twilio開発環境構築ハンズオン
Yutaka Fujisaki
PPTX
Bluemixユーザー会発表資料 - デモ付き
twilioforkwc
PPTX
IPメッセージング勉強会「WebのリアルタイムとIPメッセージング」
Kiminari Homma
PDF
Twilio入門 -Web アプリ編-
Masashi Shinbara
PDF
TwilioJP-UG 大阪 第0回 「IoTな時代に向けて クラウドサービスで電話を使いたおそう」オープニング
Hiroyuki Hiki
PDF
Twilioビジネスセミナー Vol.5 - コールセンター
twilioforkwc
PDF
Twilio TBS - 20140301
Joohoun Song
PDF
Twilioハンズオン資料 鹿児島
Joohoun Song
【B-1】kintoneでお手軽コールセンター!
Sakae Saito
Twilioが動いているところを見てみよう(仮)
Sakae Saito
30分で知るTwilio 2016
Sakae Saito
20130927 MA9 東京ハッカソン発表資料
Joohoun Song
Twilio x AITalk 勉強会資料
Katsumi Takahashi
AWSアイデアソン20150509
Noriyuki Koide
Twilio jpug大阪(掲載用)20160227
Noriyuki Koide
日本語消えたスライド
Masashi Shinbara
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Masashi Shinbara
第0回 Twilio勉強会 with JAWS UG in 福岡
Youhei Iwasaki
Twilio Meetup 2014/11/27
Toshiro Yagi
地方とTwilioJP-UGの素敵な関係
Hiroyuki Hiki
twilio-ug福岡 twilio開発環境構築ハンズオン
Yutaka Fujisaki
Bluemixユーザー会発表資料 - デモ付き
twilioforkwc
IPメッセージング勉強会「WebのリアルタイムとIPメッセージング」
Kiminari Homma
Twilio入門 -Web アプリ編-
Masashi Shinbara
TwilioJP-UG 大阪 第0回 「IoTな時代に向けて クラウドサービスで電話を使いたおそう」オープニング
Hiroyuki Hiki
Twilioビジネスセミナー Vol.5 - コールセンター
twilioforkwc
Twilio TBS - 20140301
Joohoun Song
Twilioハンズオン資料 鹿児島
Joohoun Song
Ad
More from Sakae Saito
(20)
PDF
プロジェクト管理ってなんだろう? ~kintoneを利用したプロジェクト進行イメージ~
Sakae Saito
PDF
kintoneで仕事も人生もグロースさせよう! ~kintone“発見”からの7年を振り返る~
Sakae Saito
PDF
『アップデートの波に乗り遅れるな!』 ~ここ最近のkintoneアップデートを振り返る~
Sakae Saito
PDF
kintoneではじめるビジネスインテリジェンス
Sakae Saito
PDF
Calendar Plus JavaScript APIをいじってみた
Sakae Saito
PDF
Alibabaのサーバーレスサービスと kintoneを連携してみた ~AWSのサーバーレスサービスとの違い~
Sakae Saito
PDF
非常時だからこそ活用したいkintone
Sakae Saito
PDF
kintoneとkintone Caféと私
Sakae Saito
PDF
創始者 kintone Caféを語る
Sakae Saito
PDF
Twilio Syncを使って積年の課題を解決!
Sakae Saito
PDF
Square利用者から見たStripe雑感
Sakae Saito
PDF
kintoneとMicrosoft Flowで学ぶイマドキのシステム間連携
Sakae Saito
PPTX
2017 エバ活動ふりかえり
Sakae Saito
PPTX
Kintone community based on empathy
Sakae Saito
PPTX
『繋がる』が生む 新しい生き方・働き方 ~クラウド活用実践事例~
Sakae Saito
PPTX
テトコちゃんがグスクくんに出会ってハッピーになったお話
Sakae Saito
PPTX
kintone伝道師より愛をこめて
Sakae Saito
PPTX
kintone Café JAPAN 2016 基調講演
Sakae Saito
PPTX
勉強会コミュニティ kintone Caféのご紹介
Sakae Saito
PDF
全俺が泣いた!kintone発見からの3年弱を振り返る
Sakae Saito
プロジェクト管理ってなんだろう? ~kintoneを利用したプロジェクト進行イメージ~
Sakae Saito
kintoneで仕事も人生もグロースさせよう! ~kintone“発見”からの7年を振り返る~
Sakae Saito
『アップデートの波に乗り遅れるな!』 ~ここ最近のkintoneアップデートを振り返る~
Sakae Saito
kintoneではじめるビジネスインテリジェンス
Sakae Saito
Calendar Plus JavaScript APIをいじってみた
Sakae Saito
Alibabaのサーバーレスサービスと kintoneを連携してみた ~AWSのサーバーレスサービスとの違い~
Sakae Saito
非常時だからこそ活用したいkintone
Sakae Saito
kintoneとkintone Caféと私
Sakae Saito
創始者 kintone Caféを語る
Sakae Saito
Twilio Syncを使って積年の課題を解決!
Sakae Saito
Square利用者から見たStripe雑感
Sakae Saito
kintoneとMicrosoft Flowで学ぶイマドキのシステム間連携
Sakae Saito
2017 エバ活動ふりかえり
Sakae Saito
Kintone community based on empathy
Sakae Saito
『繋がる』が生む 新しい生き方・働き方 ~クラウド活用実践事例~
Sakae Saito
テトコちゃんがグスクくんに出会ってハッピーになったお話
Sakae Saito
kintone伝道師より愛をこめて
Sakae Saito
kintone Café JAPAN 2016 基調講演
Sakae Saito
勉強会コミュニティ kintone Caféのご紹介
Sakae Saito
全俺が泣いた!kintone発見からの3年弱を振り返る
Sakae Saito
IPメッセージングはこうやって実装するのだ!
1.
代表 斎藤 栄 IPメッセージングは こうやって実装するのだ! ~
ITでみんなに“WAKU WAKU”を ~ TwilioJP-UG 札幌 第3回 Twilioを知ろう、触れよう、小技(Tips)を聞こう。 2016/5/13
2.
自己紹介 2 • NTTデータ ➡
データクラフト ➡ ラジカルブリッジ • サイボウズ公認kintoneエバンジェリスト • kintone Café 創始者、運営事務局/札幌支部メンバー • TwilioJP-UG 札幌コアメンバー 代表/ IT 活用アドバイザー “クラウドおじさん” 斎藤 栄 ~ ITでみんなに“WAKU WAKU”を ~
3.
属性 3 80’s昭和歌謡を楽しむ会 主催 おやじバンド活動 おやじ活動 宇宙関係 ・毎月第一火曜日(=歌謡日) ・累計44回開催 ※2016/5/13現在 次回は 6月7日(火)
4.
やってること 4 つくってます アプリ サイボウズ社が提供するクラウド業務アプリ開発プラット フォーム『kintone』を使い、お客様の業務上の課題解決 やチームワーク強化といったレイヤーにフォーカスした価 値の提供を行っています。 ソフトウェアの提供 価値の提供 札幌で
5.
ベストチーム365 5 チームワークを強化するオリジナル業務アプリ構築サービス ベストチーム365 初回訪問・試作無料! 《¥89,890から始めるアプリ開発》 ×
6.
ベストチーム365 サービスプラン 【わくわくプラン】 ¥89,890 【にこにこプラン】 ¥252,500 初回訪問・試作無料
訪問改修1回 初回訪問・試作無料 訪問改修3回 60日間の利用サポート 初回訪問・試作無料 6 リーズナブルな理由 見積なし 見積作業をしている間にアプリができてしまうため、料金体系をメニュー化しました。 仕様書なし 一般的なシステム開発作業で多くの時間を要する仕様書の作成を省きました。 分業なし 営業、SE、プログラマという分業体制ではなく、一人の担当者が全ての作業を行います。 サイボウズ社のkintoneを基盤としているため、短期間で複数のアプリを構築できます。 ※金額は全て税別です。 ※別途kintoneの利用契約が必要となります。 ※札幌市内及び近郊のお客様を想定しています。遠方のお客様の場合、Skypeによる ネットミーティングにて対応させていただきます。
7.
kintoneプラグイン《カレンダーPlus》 7 累計400DL 突破! カレンダーplus
8.
kintoneプラグイン《カレンダーPlus》 8 試用ライセンス 有償ライセンス アプリ起動時や予定登録時に 警告表示 警告表示なし サポートあり アップデート通知 サポートなし 期間制限・機能制限無し http://radical-bridge.com/product/calendarPlus.html 1~20名 ¥39,800 21~50名
¥59,800 51~100名 ¥79,800 101~200名 ¥99,800 201~500名 ¥119,800 501~1000名 ¥139,800 1001名~無制限 ¥159,800 累計400DL 突破! 買切価格/全て税別 カレンダーplus
9.
どこでもコールセンター 9 kintoneでコールセンター ・着信・発信、CTI機能、クリックトゥコール機能 ・さっと立ち上げて・さっとやめられる(専用機材不要、短期導入◎) オールクラウドだから場所を選ばない ・在宅でもコールセンターのオペレーターができる(テレワーク) ・地域間格差のない仕事を実現、転勤しても続けられる http://www.e-cometrue.com/callcenter/ 販売元:株式会社イー・カムトゥルー 開発元:ラジカルブリッジ
10.
どこでもコールセンター デモ 050-31xx-xxxx 10
11.
Twilioと言えば電話&SMS 11 たった数行のコードで電話/SMSとつながる クラウドAPIサービス http://twilio.kddi-web.com/
12.
Twilioと言えば電話&SMS 12 たった数行のコードで電話/SMSとつながる クラウドAPIサービス http://twilio.kddi-web.com/ 今日はTwilioの 電話以外のサービスを お話します!
13.
Twilio Video(BETA) &
IP Messaging(BETA) 13 PC・スマホ同士でビデオ会議 ・Webブラウザ(JavaScript SDK) ・iOS SDK ・Android SDK PC・スマホ同士でチャット ・Webブラウザ(JavaScript SDK) ・iOS SDK ・Android SDK
14.
百聞は一見にしかず Video & IP
Messaging デモ 14
15.
今日はIPメッセージングについて掘り下げます 15 PC・スマホ同士でビデオ会議 ・Webブラウザ(JavaScript SDK) ・iOS SDK ・Android
SDK PC・スマホ同士でチャット ・Webブラウザ(JavaScript SDK) ・iOS SDK ・Android SDK
16.
IPメッセージングでできること 16 • チャンネルの作成、破棄、および取得 • プライベートとパブリックのチャンネルタイプ •
メンバーの追加、招待、削除、および取得 • チャンネルへの参加および参加解除 • メッセージを送信および受信する • メッセージの編集および削除 • ユニークでアドレス可能なチャンネル名 • 複数のデバイスの内容の同期 • オフラインメッセージのサポート(オフラインメンバーが接続したときにメッ セージを配信) • イベントのコールバックと webhook • タイピングインジケーター • ロールとパーミッション • iOS、Android、および JavaScript 用のクライアント SDK • iOS 用の APN プッシュ通知サポート • Android 用の GCM プッシュ通知サポート • JavaScript 用のメッセージ配信ステータス(他のメンバーのメッセージ「読み込 みステータス」) • JavaScript 用の消費位置管理(全デバイスで同期した自分のメッセージ「読み込 みステータス」) 公式APIリファレンス には色々書いてます…
17.
精査して お伝えします 17
18.
IPメッセージングでできること 18 • チャンネルの作成、破棄、および取得 • プライベートとパブリックのチャンネルタイプ •
メンバーの追加、招待、削除、および取得 • チャンネルへの参加および参加解除 • メッセージを送信および受信する • メッセージの編集および削除 • ユニークでアドレス可能なチャンネル名 • 複数のデバイスの内容の同期 • オフラインメッセージのサポート(オフラインメンバーが接続したときにメッ セージを配信) • イベントのコールバックと webhook • タイピングインジケーター • ロールとパーミッション • iOS、Android、および JavaScript 用のクライアント SDK • iOS 用の APN プッシュ通知サポート • Android 用の GCM プッシュ通知サポート • JavaScript 用のメッセージ配信ステータス(他のメンバーのメッセージ「読み 込みステータス」) • JavaScript 用の消費位置管理(全デバイスで同期した自分のメッセージ「読み込 みステータス」) 今日は太字の機能を 解説します
19.
IPメッセージングの特長 19 自分でリアルタイム処理サーバーを立てなくても良い • Socket.IO等でサーバーサイド処理を書かなくても良い •
サーバーのスケールのことなど気にしなくても良い クライアントの実装は自分自身でやる必要がある • メッセージング処理 • 表示周り 特定のクライアントアプリに縛られることなく、 メッセージング機能を自身のアプリに組み込める。
20.
プラットフォーム 20 SDK • JavaScript
SDK • iOS SDK • Android SDK API • REST API
21.
プラットフォーム 21 SDK • JavaScript
SDK • iOS SDK • Android SDK API • REST API 今日はJavaScriptの 実装例を解説します
22.
ざっくりとしたイメージ 22 ①AccessToken取得 ②Channelの生成 or 参加 ③メッセージのやり取り等 ①AccessToken取得 ②Channelの生成
or 参加 ③メッセージのやり取り等 Webサーバー ・ACCOUNT SID ・AUTH TOKEN ・SERVICE SID ・Endpoint ID を使ってAccessTokenを取得。 ※これらは非公開情報のためサー バー上に定義しておく
23.
チャット機能の実装の大まかな流れ 23 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
24.
チャット機能の実装の大まかな流れ 24 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
25.
1.Twilio管理画面(認証情報の収集) 25
26.
1.Twilio管理画面(認証情報の収集) 26
27.
1.Twilio管理画面(認証情報の収集) 27
28.
1.Twilio管理画面(認証情報の収集) 28 Endpoint IDとは? ・どのチャットアプリに(appName) ・誰が(identity) ・どのデバイスから(device) の3要素で定義されるユニークなID。 ユニークさを保証できればフォーマットは自由。 例) $endpointId
= $appName . ’:’ . $identity . ’:’ . $device => ‘myChatApp:Alice:Chrome’
29.
チャット機能の実装の大まかな流れ 29 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
30.
2.SDK, ヘルパーライブラリの設置 30 <script src="https://media.twiliocdn.com/sdk/js/common/v0.1/twilio- common.min.js"></script> <script
src="https://media.twiliocdn.com/sdk/rtc/js/ip- messaging/v0.10/twilio-ip-messaging.min.js"></script> JavaScript SDK https://github.com/twilio/twilio-php/archive/master.zip ※ /Serviceディレクトリをサーバーに設置 PHPヘルパーライブラリ
31.
チャット機能の実装の大まかな流れ 31 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
32.
3.AccessTokenの取得 32 $.getJSON('/token.php', { identity: username, device:
'browser' }, function(data) { var token = data.token; }); JavaScript
33.
3.AccessTokenの取得 33 <?php require_once('./Services/Twilio.php'); $account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $auth_token
= 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'; $service_sid = 'ISzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'; $appName = 'TwilioChatDemo'; $identity = $_GET['identity']; $deviceId = $_GET['device']; $endpointId = $appName . ':' . $identity . ':' . $deviceId; token.php (1)
34.
3.AccessTokenの取得 34 $client = new
Services_Twilio($account_sid, $auth_token); $key = $client->account->signing_keys ->create(array('FriendlyName' => $appName)); $signingKeySid = $key->sid; $signingKeySecret = $key->secret; $token = new Services_Twilio_AccessToken( $account_sid, $signingKeySid, $signingKeySecret, 3600, $identity ); token.php (2)
35.
3.AccessTokenの取得 35 $ipmGrant = new
Services_Twilio_Auth_IpMessagingGrant(); $ipmGrant->setServiceSid($service_sid); $ipmGrant->setEndpointId($endpointId); $token->addGrant($ipmGrant); echo json_encode(array( 'identity' => $identity, 'token' => $token->toJWT() )); token.php (3)
36.
チャット機能の実装の大まかな流れ 36 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
37.
4.AccessTokenによるSDKの初期化 37 var accessManager =
new Twilio.AccessManager(token); var messagingClient = new Twilio.IPMessaging.Client(accessManager); JavaScript
38.
チャット機能の実装の大まかな流れ 38 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
39.
5.Channelの作成(既に存在している場合は不要) 39 messagingClient.createChannel({ uniqueName: 'general', friendlyName: 'General
Chat Channel' }).then(function(channel) { console.log('Created general channel:'); console.log(channel); }); JavaScript
40.
チャット機能の実装の大まかな流れ 40 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
41.
6.Channelへの参加 41 channel.join().then(function(channel) { console.log('Joined channel
' + channel.friendlyName) }); JavaScript
42.
チャット機能の実装の大まかな流れ 42 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
43.
7.イベントハンドラーの定義 ① 43 // メッセージ受信時 channel.on('messageAdded',
function(message) { console.log(message.author, message.body); // チャットエリアにメッセージを追記する処理を記述 }); // 招待された時 messagingClient.on('channelInvited', function(channel) { console.log('Invited to ' + channel.friendlyName); channel.join(); }); JavaScript
44.
7.イベントハンドラーの定義 ② 44 // メンバー入室時 channel.on('memberJoined',
function(member) { console.log(member.identity + 'has joined.'); }); // メンバー退室時 channel.on('memberLeft', function(member) { console.log(member.identity + 'has left the channel.'); }); JavaScript
45.
7.イベントハンドラーの定義 ③ 45 // タイピング開始時 channel.on('typingStarted',
function(member) { console.log(member.identity + 'is currently typing.'); // タイピング中表示の処理を記述 }); // タイピング終了時 channel.on('typingEnded', function(member) { console.log(member.identity + 'has stopped typing.'); // タイピング中表示を停止する処理を記述 }); JavaScript
46.
7.イベントハンドラーの定義 ④ 46 // メンバー情報変更時(メッセージ既読情報更新時など) var
members = myChannel.getMembers(); members.forEach(function(member) { member.on('updated', function(updatedMember) { console.log(updatedMember); // 既読表示などの処理を記述 }); }); JavaScript
47.
チャット機能の実装の大まかな流れ 47 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
48.
8.メッセージの取得 48 // メッセージの受信と出力 channel.getMessages().then(function(messages) { var
totalMessages = messages.length; for (i=0; i<messages.length; i++) { var message = messages[i]; console.log(message.author, message.body); } console.log('Total Messages:' + totalMessages); }); JavaScript
49.
チャット機能の実装の大まかな流れ 49 1.Twilio管理画面(認証情報の収集) 2.SDKの設置 3.AccessTokenの取得 4.AccessTokenによるSDKの初期化 5.Channelの作成 6.Channelへの参加 7.イベントハンドラーの定義 8.メッセージの取得 9.アクションに関する処理 2.ヘルパーライブラリの設置 3.AccessTokenの取得
50.
9.アクションに関する処理 ① 50 // メッセージの送信 var
msg = $('#chat-input').val(); channel.sendMessage(msg); ---- // メンバーを招待する channel.invite('elmo').then(function() { console.log('Your friend has been invited!'); }); ---- // 最終既読メッセージインデックスの更新 // ※クライアントから通知する必要がある(10秒間隔で通知) // 相手側でmemberのupdatedイベントが発火 channel.updateLastConsumedMessageIndex(newestIndex); JavaScript
51.
9.アクションに関する処理 ② 51 // タイピング開始の通知 //
※クライアントから通知する必要がある(5秒間隔で通知) // ※相手側でchannelのtypingStartedイベントが発火 $('#chat-input').on('keydown', function(e) { if (e.keyCode === 13) { sendButton.click(); } else { channel.typing(); } }); JavaScript ※タイピング終了時イベントはタイムアウトで自動発生するので 明示的に通知する必要は無い
52.
既読通知・タイピング開始通知のインターバルについて 52 • 最終既読メッセージインデックスの更新通知間隔 =
10秒 • タイピング開始の通知間隔 = 5秒 JavaScript SDKからはインターバル値の設定を変更でき ない。 変更したい場合はREST APIを利用するとできるが、間隔 を短くする際はトラフィックの増大に注意すること。
53.
参考にすべき情報源 53 • APIリファレンス https://jp.twilio.com/docs/api/ip-messaging
54.
54 これで君も IPメッセージングを 使って実装できる!
55.
以上です! 55
56.
告知! 56 • 6月10日(金)19:00~20:30 TwilioJP-UG 札幌
第4回 【Twilioハンズオン!初級編】 twilio 札幌 4回 https://twiliojp-ug.doorkeeper.jp/events/43495
57.
電話アンケート 57 TwilioJP-UG 札幌 第3回の感想をお聞かせください。 050-31xx-xxxx 「本セッションの感想を1から4までの数字で お答えください」 1.役に立った 2.まあ役に立った 3.あまり役にたたなかった 4.役に立たなかった
58.
《終了後追加》アンケート結果をkintoneですぐに集計表示 58
Download