Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ipメッセージング勉強会

464 views

Published on

2016/2/26に開催されたTwilio-UGの勉強会資料です。

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Ipメッセージング勉強会

  1. 1. IPメッセージングを AWS lambdaで実装した話
  2. 2. 自己紹介 髙橋克己(たかはしかつみ) facebook: http://fb.com/katsumi.takahashi グローバル・インターネット・ジャパン株式会社 代表取締役 独立系ソフトハウスに勤務後、1994年に独立。
 主に、通信事業者向けの研修の企画・運営と、Webサービスの開発 を中心に事業を展開。
 フルスタックエンジニア。
 Twilio-UG 東京メンバー。
  3. 3.  Smart Communication Award 2014応募作品 留守電メッセージが文字で届く、国内初の留守番電話サービス TRANSREC
  4. 4.  Smart Communication Award 2015 最優秀賞受賞作品 あなたの代わりに電話をかけます 自動電話リレーサービス
  5. 5. I m DOer
  6. 6. 2016.2.22∼ Twilio事業部ソリューションアーキテクト
  7. 7. 本日の立ち位置はTwilio-UGメンバーですw
  8. 8. 本日のアジェンダ • サンプルプログラムの解説 • AWS lambdaに移植した話 • IPメッセージングの補足情報
  9. 9. サンプルプログラム の解説
  10. 10. サンプルプログラムはどこにある? • 公式サイトのQuick Start • JavaScriptのサンプル
 https://jp.twilio.com/docs/api/ip-messaging/guides/quickstart-js
 C#/Java/Node.js/PHP/Python/Rubyがあります • iOSのサンプル
 https://jp.twilio.com/docs/api/ip-messaging/guides/quickstart-ios
 サーバーアプリとしてPHPのサンプルがあります • GitHubのTwilio公式アカウント • https://github.com/twilio
 iOS、Android、JavaScript(Node.js)用など
  11. 11. 今回はQuick StartのJavaScripts版(Node.js)
  12. 12. ファイル構成 ipm-quickstart-node-master ├── .env.example ←Account SIDなどの設定情報 ├── .gitignore ├── LICENSE ├── README.md ├── index.js ←サーバーサイド(Express) ├── package.json  ←必要なライブラリ  ├── public │ ├── index.css ←ブラウザ側CSSファイル │ ├── index.html ←ブラウザ側HTMLファイル │ └── index.js ←ブラウザ側JavaScripts └── randos.js ←ユーザ名をランダムに生成するjs Node.js + Express
  13. 13. システム構成図
  14. 14. ./package.json ヘルパーライブラリ
 twilio@3.0.0-edge 最新版は twilio@3.3.0-edge ? Twilioの公式
 GitHubに最新版あり
  15. 15. ./public/index.html JavaScript SDK
 最新版は0.9.4最新版は、https://www.twilio.com/docs/api/ip-messaging/ changelogs/javascript を参照してください。 ここ にメッセージが
 表示される
  16. 16. アクセストークン取得フロー SDK AP名+Id+DevId
  17. 17. ./public/index.js 49行目、アクセストークンをリクエスト(ajax) ・・・前ページ① 50行目、ブラウザベースでアクセスする際のデバイスIDはなんでも良い 53行目、返却されたidentityがユーザ名(ユーザ名はサーバーで生成) 58行目、返却されたtokenでAccessManagerを初期化 ・・・前ページ③ 59行目、AccessManagerを使ってIPMessagingを初期化
  18. 18. Class • IPMessaging • Channel、Member、Messageに関するクラス • twilio-ip-messaging.js • AccessManager • アクセストークンに関するクラス • twilio-common.jsとして独立? 公式ドキュメントによる推奨設定 <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.9/twilio-ip-messaging.min.js"></script>
  19. 19. ./index.js(サーバーサイド) ユーザ名を生成 エンドポイントの識別子 IPメッセージングのサービスSID アクセストークンに対してエンドポイントを許可 JWT形式でトークンを返却 ユーザ名をトークンに格納 アクセストークンの生成 アプリケーション名
  20. 20. ./public/index.js(続き) 64行目、チャネルを検索 69行目、チャネルを新規に作成
  21. 21. ./public/index.js(続き) 89行目、チャネルに参加 95行目、チャネルのイベントリスナー「messageAdded」を定義
  22. 22. AWS lambdaに 移植した話
  23. 23. なぜlambda? • サンプルプログラムだとサーバーがいるよね • サーバーサイドが必要なのは、トークンの生成のみ • クライアントはJSで動くので、静的HTML→S3で良くね? • Node.jsのサンプルがあるので、lambdaに移植しやすい GitHubにソースをあげてあります。 $ git clone https://github.com/mobilebiz/ipmlambda.git
  24. 24. システム構成図 デモでは、ここが Localhostだった
  25. 25. 移植作業 • ./index.js内のアクセストークン生成部分を、API Gateway とlambdaに置き換える。 • ユーザ名を生成するrandos.jsとtwilioのヘルパーライブラ リーは、すべてzipパッケージにしてlambdaにデプロイす る。 • ./public配下のコンテンツをS3に配置し、静的Webサービ スとして配信する。
  26. 26. lamdbaにデプロイするzipの構成 • index.js ←lamdba用に書き換えたトークン生成プログラ ム • randos.js ←サンプルプログラムそのまま • node_modules ←Twilioヘルパーライブラリを格納した フォルダ
  27. 27. index.js
  28. 28. index.js(続き)
  29. 29. index.js(続き)
  30. 30. S3に配置するファイルの構成 • index.html ←サンプルプログラムそのまま • index.css ←サンプルプログラムそのまま • index.js ←API Gateway経由でアクセストークンを取得 するように改修
  31. 31. デプロイ作業 • zipパッケージの作成 • lambdaファンクションの新規登録 • API Gatewayの設定 • S3にコンテンツを配置 • S3の静的ウェブホストの設定 詳しくはQiitaの記事を読んでね♡ http://qiita.com/mobilebiz/items/077dea8fe58c45c9c16f
  32. 32. IPメッセージング
 の補足情報
  33. 33. 念のためおさらい サービス ロール チャネル ロール
  34. 34. ユーザの生成方法 • 明示的なユーザの生成(REST API) • POST /Services/{Instance SID}/Users • パラメーター • Identity:ユニークなユーザ名 • RoleSid:ユーザに割り当てられるサービスロールのSID • アクセストークン生成時に自動生成 • サンプルプログラムはこの方法で生成 • この時のロールは「service user」
  35. 35. メンバーのチャネルへの追加方法 • 明示的なメンバーの追加(REST API) • POST /Services/{Instance SID}/Channels/{Channel SID}/ Members • パラメーター • Identity:ユニークなユーザ名 • RoleSid:メンバーとして割り当てられるチャネルロールの SID • Channelクラスのjoin()で参加 • サンプルプログラムはこの方法で生成 • この時のロールは「channel user」

  36. 36. <参考>デフォルトロール 生成したユー ザに割当 チャネルに 参加したメンバー に割当
  37. 37. IPメッセージングの料金 • コマンド発行数 • Twilioに発行されたコマンド1つに付き、$0.00004(50,000コマ ンドまでは無料) • データ転送量 • エンドポイントに対してTwilioから転送されたデータ量に対して、 1GBあたり$0.4(オープンβ時は無料) • データストレージ • Twilio内で保持するリアルタイムデータ(チャネル、ユーザ、メッセー ジなど)を月で集計し、1GBあたり$3(オープンβ時は無料) • エンドポイント接続数 • 1時間内で最も多かったエンドポイント数に対して、1エンドポイ ントあたり$0.0001(オープンβ時は無料) ※オープンβ時点、日本国内の料金は未定
  38. 38. Let s Enjoy !

×