Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Tomoki Hasegawa
16,040 views
PHPでスマホアプリにプッシュ通知する
PHP勉強会#93 の資料です
Software
◦
Read more
12
Save
Share
Embed
Embed presentation
Download
Downloaded 27 times
1
/ 70
2
/ 70
3
/ 70
4
/ 70
5
/ 70
6
/ 70
7
/ 70
8
/ 70
9
/ 70
10
/ 70
Most read
11
/ 70
12
/ 70
13
/ 70
14
/ 70
15
/ 70
16
/ 70
17
/ 70
18
/ 70
19
/ 70
20
/ 70
21
/ 70
22
/ 70
23
/ 70
24
/ 70
25
/ 70
26
/ 70
27
/ 70
Most read
28
/ 70
Most read
29
/ 70
30
/ 70
31
/ 70
32
/ 70
33
/ 70
34
/ 70
35
/ 70
36
/ 70
37
/ 70
38
/ 70
39
/ 70
40
/ 70
41
/ 70
42
/ 70
43
/ 70
44
/ 70
45
/ 70
46
/ 70
47
/ 70
48
/ 70
49
/ 70
50
/ 70
51
/ 70
52
/ 70
53
/ 70
54
/ 70
55
/ 70
56
/ 70
57
/ 70
58
/ 70
59
/ 70
60
/ 70
61
/ 70
62
/ 70
63
/ 70
64
/ 70
65
/ 70
66
/ 70
67
/ 70
68
/ 70
69
/ 70
70
/ 70
More Related Content
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
by
Nobuyuki Sasaki
PDF
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
by
Takakiyo Tanaka
PDF
SQLアンチパターン - ナイーブツリー
by
ke-m kamekoopa
PPTX
Amazon Kinesis Video Streams WebRTC 使ってみた
by
mganeko
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
PDF
WebRTC研修
by
株式会社 NTTテクノクロス
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
by
Nobuyuki Sasaki
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
by
Takakiyo Tanaka
SQLアンチパターン - ナイーブツリー
by
ke-m kamekoopa
Amazon Kinesis Video Streams WebRTC 使ってみた
by
mganeko
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
WebRTC研修
by
株式会社 NTTテクノクロス
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
What's hot
PPTX
脱RESTful API設計の提案
by
樽八 仲川
PDF
Azure AD B2CにIdPを色々と繋いでみる
by
Naohiro Fujie
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PPTX
Private Azure Kubernetes Service cluster を触ってみよう♪
by
Igarashi Toru
PPTX
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
PDF
日本語テストメソッドについて
by
kumake
PDF
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
by
Toru Makabe
PDF
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
by
日本マイクロソフト株式会社
PDF
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
by
Hironobu Isoda
PPTX
MQ入門
by
HIRA
PPTX
もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】
by
WESEEKWESEEK
PDF
JVMのGCアルゴリズムとチューニング
by
佑哉 廣岡
PDF
今話題のいろいろなコンテナランタイムを比較してみた
by
Kohei Tokunaga
PDF
SSMSでSQL Serverの実行計画を見てSQLチューニング
by
釣りキチ翔平
PDF
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
by
NTT DATA Technology & Innovation
PDF
ドメイン駆動設計入門
by
増田 亨
PDF
今更聞けない? Androidのテストのいろは
by
Hiroshi Kikuchi
PPTX
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
by
ShuheiUda
PDF
PHP 5.5ネーティブキャッシュの話
by
Rui Hirokawa
PDF
アジャイルなソフトウェア設計を目指して
by
増田 亨
脱RESTful API設計の提案
by
樽八 仲川
Azure AD B2CにIdPを色々と繋いでみる
by
Naohiro Fujie
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
Private Azure Kubernetes Service cluster を触ってみよう♪
by
Igarashi Toru
ぱぱっと理解するSpring Cloudの基本
by
kazuki kumagai
日本語テストメソッドについて
by
kumake
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
by
Toru Makabe
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
by
日本マイクロソフト株式会社
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
by
Hironobu Isoda
MQ入門
by
HIRA
もう知らずにはいられないGitOpsをArgoCDで学ぶ【WESEEK Tech Conf #3】
by
WESEEKWESEEK
JVMのGCアルゴリズムとチューニング
by
佑哉 廣岡
今話題のいろいろなコンテナランタイムを比較してみた
by
Kohei Tokunaga
SSMSでSQL Serverの実行計画を見てSQLチューニング
by
釣りキチ翔平
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
by
NTT DATA Technology & Innovation
ドメイン駆動設計入門
by
増田 亨
今更聞けない? Androidのテストのいろは
by
Hiroshi Kikuchi
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
by
ShuheiUda
PHP 5.5ネーティブキャッシュの話
by
Rui Hirokawa
アジャイルなソフトウェア設計を目指して
by
増田 亨
Viewers also liked
PDF
Laravelのeloquent だけ入れた話
by
Masataka Kono
PPTX
ハードディスクの正しい消去(2015.7)
by
UEHARA, Tetsutaro
PDF
H2O x mrubyで人はどれだけ幸せになれるのか
by
Ichito Nagata
PDF
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
by
Yukiya Nakagawa
PDF
サーバPUSHざっくりまとめ
by
Yasuhiro Mawarimichi
PDF
Androidアプリのストレージ戦略
by
Masahiro Hidaka
PDF
AWSでアプリ開発するなら 知っておくべこと
by
Keisuke Nishitani
PDF
B2B Marketing and The Power of Twitter
by
Steve Yanor
PDF
The Be-All, End-All List of Small Business Tax Deductions
by
Wagepoint
PPTX
Culture
by
Reed Hastings
PDF
Enduring CSS
by
Takazudo
PDF
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
by
Takuya Ueda
PDF
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
by
Developers Summit
PDF
Scalaプロダクトのビルド高速化
by
kuro kuro
PDF
Kubernetes in 30 minutes (2017/03/10)
by
lestrrat
PDF
全てSになる -RxJavaとLWSを持ち込む楽しさ-
by
Ryutaro Miyashita
PDF
「ハイレベルメンバーを共創させたら何が起きるか?実験」結果報告会 スライド
by
Keita Takizawa
PPTX
スタートアップを陰ながら支えるときに心がけるべき5ヶ条
by
Atsumi Kawashima
PDF
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
by
Masataka Kono
PPTX
Measuring Content Marketing
by
David Iwanow
Laravelのeloquent だけ入れた話
by
Masataka Kono
ハードディスクの正しい消去(2015.7)
by
UEHARA, Tetsutaro
H2O x mrubyで人はどれだけ幸せになれるのか
by
Ichito Nagata
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
by
Yukiya Nakagawa
サーバPUSHざっくりまとめ
by
Yasuhiro Mawarimichi
Androidアプリのストレージ戦略
by
Masahiro Hidaka
AWSでアプリ開発するなら 知っておくべこと
by
Keisuke Nishitani
B2B Marketing and The Power of Twitter
by
Steve Yanor
The Be-All, End-All List of Small Business Tax Deductions
by
Wagepoint
Culture
by
Reed Hastings
Enduring CSS
by
Takazudo
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
by
Takuya Ueda
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
by
Developers Summit
Scalaプロダクトのビルド高速化
by
kuro kuro
Kubernetes in 30 minutes (2017/03/10)
by
lestrrat
全てSになる -RxJavaとLWSを持ち込む楽しさ-
by
Ryutaro Miyashita
「ハイレベルメンバーを共創させたら何が起きるか?実験」結果報告会 スライド
by
Keita Takizawa
スタートアップを陰ながら支えるときに心がけるべき5ヶ条
by
Atsumi Kawashima
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
by
Masataka Kono
Measuring Content Marketing
by
David Iwanow
Similar to PHPでスマホアプリにプッシュ通知する
PDF
Gcmを試してみた。
by
Eiichi Tsuru
PDF
改C2 dmを試してみた。
by
Eiichi Tsuru
PDF
PUSH通知証明書作成ツールを作った
by
Tomoki Hasegawa
PDF
リアルFacebookガジェットを作った(ロングバージョン)
by
Mariko Goda
KEY
スマートフォンアプリケーション開発の最新動向
by
Tsutomu Ogasawara
PDF
GCMでiOSとAndroidに通知を送る
by
Motoshi Nishihira
PDF
PhoneGapで作るハイブリッドアプリケーション
by
Masahiko Tachizono
ODP
雲から機器へ伝達させる為の枠組み
by
Katsumi Honda
PDF
Swiftアプリにプッシュ通知を組み込もう!
by
natsumo
PPT
スマホアプリ企画書
by
naotaro0123
PDF
AndroidーiOS開発比較〜iOSエンジニアから見たAndroidのアレコレ〜
by
Takaaki Tanaka
PPTX
クラウド―Arduino接続について
by
Kenichi Yoshida
KEY
自作iPhoneアプリの紹介
by
Atsuto Suyama
PDF
とあるCocos2dx入門編
by
kumin1030
PDF
ソーシャルアプリ勉強会(第一回資料)配布用
by
Yatabe Terumasa
PDF
PhoneGapでWebアプリをスマホアプリ化
by
Takashi Okamoto
PDF
【JavaScript SDK ver.2】MonacaとmBaaSでプッシュ通知を体験しよう(for Android & iOS)
by
natsumo
PDF
Firefox os勉強会 2nd WEB屋さんがWEBアプリを作ってみた
by
Nobuhiro Ueda
PDF
【Monaca×mobile backend】 プッシュ通知をカンタン実装! スピード感ある開発をしよう!
by
natsumo
PDF
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
by
Takashi Okamoto
Gcmを試してみた。
by
Eiichi Tsuru
改C2 dmを試してみた。
by
Eiichi Tsuru
PUSH通知証明書作成ツールを作った
by
Tomoki Hasegawa
リアルFacebookガジェットを作った(ロングバージョン)
by
Mariko Goda
スマートフォンアプリケーション開発の最新動向
by
Tsutomu Ogasawara
GCMでiOSとAndroidに通知を送る
by
Motoshi Nishihira
PhoneGapで作るハイブリッドアプリケーション
by
Masahiko Tachizono
雲から機器へ伝達させる為の枠組み
by
Katsumi Honda
Swiftアプリにプッシュ通知を組み込もう!
by
natsumo
スマホアプリ企画書
by
naotaro0123
AndroidーiOS開発比較〜iOSエンジニアから見たAndroidのアレコレ〜
by
Takaaki Tanaka
クラウド―Arduino接続について
by
Kenichi Yoshida
自作iPhoneアプリの紹介
by
Atsuto Suyama
とあるCocos2dx入門編
by
kumin1030
ソーシャルアプリ勉強会(第一回資料)配布用
by
Yatabe Terumasa
PhoneGapでWebアプリをスマホアプリ化
by
Takashi Okamoto
【JavaScript SDK ver.2】MonacaとmBaaSでプッシュ通知を体験しよう(for Android & iOS)
by
natsumo
Firefox os勉強会 2nd WEB屋さんがWEBアプリを作ってみた
by
Nobuhiro Ueda
【Monaca×mobile backend】 プッシュ通知をカンタン実装! スピード感ある開発をしよう!
by
natsumo
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
by
Takashi Okamoto
More from Tomoki Hasegawa
PDF
Reading php terminal-gameboy-emulator
by
Tomoki Hasegawa
PDF
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
by
Tomoki Hasegawa
PDF
とある受託ベンダの開発環境
by
Tomoki Hasegawa
PDF
iOS Developers Conference Japan 2016
by
Tomoki Hasegawa
PDF
エンジニアのお祭り
by
Tomoki Hasegawa
PDF
勉強会のこちら側とあちら側
by
Tomoki Hasegawa
PDF
tvOSでWebSocketを使う
by
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた PHP side
by
Tomoki Hasegawa
PDF
tvOSネイティブアプリを作る
by
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた
by
Tomoki Hasegawa
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
PDF
TestFlightみたいなのを自作する
by
Tomoki Hasegawa
PDF
Stargazer Meetup #1
by
Tomoki Hasegawa
PDF
PHPカンファレンス福岡に 行ってきた
by
Tomoki Hasegawa
PDF
CakePHP3ウォークスルー
by
Tomoki Hasegawa
PDF
はじめてのiOSアプリ開発 Swift対応版
by
Tomoki Hasegawa
PDF
AppStore申請を一式まるっと自動化する
by
Tomoki Hasegawa
PDF
PHPerのためのSwift入門
by
Tomoki Hasegawa
PDF
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
by
Tomoki Hasegawa
PDF
Swiftのプロパティオブザーバを使い倒す
by
Tomoki Hasegawa
Reading php terminal-gameboy-emulator
by
Tomoki Hasegawa
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
by
Tomoki Hasegawa
とある受託ベンダの開発環境
by
Tomoki Hasegawa
iOS Developers Conference Japan 2016
by
Tomoki Hasegawa
エンジニアのお祭り
by
Tomoki Hasegawa
勉強会のこちら側とあちら側
by
Tomoki Hasegawa
tvOSでWebSocketを使う
by
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた PHP side
by
Tomoki Hasegawa
tvOSネイティブアプリを作る
by
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた
by
Tomoki Hasegawa
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
by
Tomoki Hasegawa
TestFlightみたいなのを自作する
by
Tomoki Hasegawa
Stargazer Meetup #1
by
Tomoki Hasegawa
PHPカンファレンス福岡に 行ってきた
by
Tomoki Hasegawa
CakePHP3ウォークスルー
by
Tomoki Hasegawa
はじめてのiOSアプリ開発 Swift対応版
by
Tomoki Hasegawa
AppStore申請を一式まるっと自動化する
by
Tomoki Hasegawa
PHPerのためのSwift入門
by
Tomoki Hasegawa
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
by
Tomoki Hasegawa
Swiftのプロパティオブザーバを使い倒す
by
Tomoki Hasegawa
PHPでスマホアプリにプッシュ通知する
1.
PHPでスマホアプリに プッシュ通知する デジタルサーカス(株)長谷川智希
2.
長谷川智希 とも き @tomzoh とむぞう 開発系趣味 その他趣味 Webサイト開発, iOSアプリ開発 レンタルカートレース,
電子工作(mbed), … TOMZOH お仕事 スマホアプリ受託開発 Mgr デジタルサーカス(株) 副団長CTO Facebook CakePHP iOS
3.
デジタルサーカス(株) ・ Webサイト受託開発 ・ スマホアプリ受託開発 ・
自社サービス (PHP, Drupal, CakePHP) (iOS, Android) (http://appbuilder.jp) Twitter: @tomzoh
4.
Twitter: @tomzoh
5.
Twitter: @tomzoh
6.
今日のテーマ: PHPでスマホアプリに プッシュ通知する
7.
今日のテーマ: PHPでスマホアプリに プシュッ通知する
8.
今日のテーマ: PHPでスマホアプリに プシュッ通知する 🍺
9.
🍺基礎知識🍺
10.
スマホアプリのプッシュ通知 • 呼び方はiOS /
Androidでちょっと違う • iOS: Apple Push Notification Service (APNs) • Android: Google Cloud Messaging (GCM) • どっちもHTTPベースの技術でできています😃 • アプリに対して送信します。 • アプリが入っていないと届かない。
11.
プッシュ通知の概要 - 準備 Apple
/ Google アプリ用サーバ スマホアプリ ①デバイストークン*1 を取得 *1)AndroidではRegistration ID
12.
プッシュ通知の概要 - 準備 Apple
/ Google アプリ用サーバ スマホアプリ ②デバイストークンを登録 (多くのケースではユーザIDや端末IDと ひもづけて送信する。) 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 :
13.
プッシュ通知の概要 - 送信 Apple
/ Google アプリ用サーバ スマホアプリ ③デバイストークン とメッセージを送信 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 : http
14.
プッシュ通知の概要 - 送信 Apple
/ Google アプリ用サーバ スマホアプリ ④プッシュ通知! お知らせだよ!
15.
でやる
16.
プッシュ通知の概要 - 送信 Apple
/ Google アプリ用サーバ スマホアプリ 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 :
17.
プッシュ通知の概要 - 送信 Apple
/ Google アプリ用サーバ スマホアプリ 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 :
18.
プッシュ通知の概要 - 送信 Apple
/ Google アプリ用サーバ スマホアプリ 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 : これを で。
19.
Androidのプッシュ通知送信 $ curl --header
"Authorization: key=【APIキー】" --header Content-Type:"application/json"" https://android.googleapis.com/gcm/send -d "{"registration_ids":["【RegistrationID】"],"data": {"message":"Hello monotty!"}}"
20.
Androidのプッシュ通知送信 $ curl --header
"Authorization: key=【APIキー】" --header Content-Type:"application/json"" https://android.googleapis.com/gcm/send -d "{"registration_ids":["【RegistrationID】"],"data": {"message":"Hello monotty!"}}" • かんたん。 • 生PHPでもぜんぜんOK。 😇
21.
iOSのプッシュ通知送信 • バイナリインタフェース
22.
iOSのプッシュ通知送信 • バイナリインタフェース 😱• めんどい!
23.
つらたん😭
24.
つらたん😭 • PHPなんだから誰か良いライブラリ作ってくれてる んじゃないの?😢
25.
つらたん😭 • PHPなんだから誰か良いライブラリ作ってくれてる んじゃないの?😢 → 正解。ApnsPHPという鉄板ライブラリがある😊
26.
• composerで入れられるフォークもあり。 • this
fork is a Apns_PHP namespaced version! ideal to use as vendor in sf2 or zf2. composer
27.
ApnsPHPでのiOSプッシュ送信
28.
ApnsPHPでのiOSプッシュ送信 テスト環境への接続
29.
ApnsPHPでのiOSプッシュ送信 テスト環境への接続 テスト環境用の証明書
30.
基本こんだけ。 簡単。
31.
細かいお話
32.
Apple / Google
アプリ用サーバ スマホアプリ ②デバイストークンを登録 (多くのケースではユーザIDや端末IDと ひもづけて送信する。) 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 : 参考1: アプリ用サーバに送信するデータ例
33.
Apple / Google
アプリ用サーバ スマホアプリ ②デバイストークンを登録 (多くのケースではユーザIDや端末IDと ひもづけて送信する。) 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 : 参考1: アプリ用サーバに送信するデータ例 { device_id : 6521e13b9e1e2b45f15b16c65334b622097f07489c96a9a35413b49018b4126a , os : iOS , device_token : 8994b692542e6d5229fb925fe29a5a60e51017a81eca3d76881c91bf0bce40e3 }
34.
Apple / Google
アプリ用サーバ スマホアプリ ②デバイストークンを登録 (多くのケースではユーザIDや端末IDと ひもづけて送信する。) 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 : 参考1: アプリ用サーバに送信するデータ例 { device_id : 6521e13b9e1e2b45f15b16c65334b622097f07489c96a9a35413b49018b4126a , os : iOS , device_token : 8994b692542e6d5229fb925fe29a5a60e51017a81eca3d76881c91bf0bce40e3 } デバイスIDとしてユーザID+シードのハッシュを使うことが多いです。
35.
Apple / Google
アプリ用サーバ スマホアプリ ②デバイストークンを登録 (多くのケースではユーザIDや端末IDと ひもづけて送信する。) 端末ID1, デバイストークン1 端末ID2, デバイストークン2 端末ID3, デバイストークン3 : 参考1: アプリ用サーバに送信するデータ例 { device_id : 6521e13b9e1e2b45f15b16c65334b622097f07489c96a9a35413b49018b4126a , os : iOS , device_token : 8994b692542e6d5229fb925fe29a5a60e51017a81eca3d76881c91bf0bce40e3 } デバイスIDとしてユーザID+シードのハッシュを使うことが多いです。 iOSの場合こんな長さ(64bytes)。Androidは140∼210bytes程度。
36.
参考2: デバイストークンの変化 • iOSのデバイストークンは変わることがある。 •
バックアップからのリストア、OSアップグレード等。 • 起動時に毎回取得してサーバに送信するべき。 • AndroidのRegistration IDも変わることがある。 • こちらも起動時に毎回サーバに送信する。 • どちらも端末IDなどをキーに毎回上書きすることに なる。
37.
参考3: iOS, 開発
& 本番環境 • iOSの場合、2つの接続先がある。 • 開発ビルド: 開発用プッシュ通知サーバ(SANDBOX) • リリースビルド: 本番用プッシュ通知サーバ(PRODUCTION) • デバイストークンが異なる。 • 開発用のトークンを本番に投げるとエラーになる。 • 本番環境に開発用トークンが混ざらないように注意。 • とは言っても混じるので送信プログラム側でエラー処理をちゃ んとやる。
38.
参考4: 発生するエラー • iOSの場合、エラーは2パターン。 •
送信時エラー: デバイストークンがおかしい等 • あとからエラー: 電源がずっと入っていないまたは圏外でのタイ ムアウト、アプリがアンインストールされている等 → このエラーもApnsPHPで取得できる。(Feedback) • Androidの場合、送信時エラーのみ。 • Androidではアンインストールを検出できるのでアンインストー ル時にアプリ用サーバからRegistration IDを削除すべき。
39.
参考5: 多対多?一対多? • アプリがID/パスワードでログインする場合設計に 注意する必要あり。 •
プッシュ通知用のデバイストークンは「端末」に1つ。 • 以下の場合プッシュ通知は「どの端末」に送る? • ある端末にログイン → ログアウト • さらにその後別のユーザでログイン • あるユーザが端末Aと端末Bにログイン • ある端末にログイン。別の端末にリストア。
40.
余談: iOS, 例のダイアログ Apple
/ Google アプリ用サーバ スマホアプリ ①デバイストークンを 取得 このタイミングで ダイアログが出る
41.
まとめ
42.
まとめ • iOSもAndroidも基本的には同じ仕組み。 • デバイストークン
/ Registration IDを取得。 • 取得したトークンを使って送信先を指定する。 • プッシュ通知送信はHTTPで。 • AndroidはテキストベースのシンプルなHTTP通信で送信できる。 • iOSはちょっと面倒だけど、ApnsPHPを使ってラクできる。 • 特有の要注意ポイントあり。 • APIやバッチ設計時にしっかり考える。
43.
One more thing...
44.
テスト環境用の証明書テスト環境用の証明書
45.
テスト環境用の証明書
46.
証明書の作成 1. MacのキーチェーンアクセスでCSRを作成 2. Apple
Developerページにアップロード 3. 証明書をダウンロード 4. Macに証明書をインストール 5. キーチェーンアクセスでファイルに書き出す 6. コマンドラインでpem形式に変換
47.
証明書の作成 1. MacのキーチェーンアクセスでCSRを作成 2. Apple
Developerページにアップロード 3. 証明書をダウンロード 4. Macに証明書をインストール 5. キーチェーンアクセスでファイルに書き出す 6. コマンドラインでpem形式に変換 お客さま < Mac無いです!
48.
証明書の作成 1. MacのキーチェーンアクセスでCSRを作成 2. Apple
Developerページにアップロード 3. 証明書をダウンロード 4. Macに証明書をインストール 5. キーチェーンアクセスでファイルに書き出す 6. コマンドラインでpem形式に変換 お客さま < Mac無いです! お客さま < 英語…
49.
証明書の作成 1. MacのキーチェーンアクセスでCSRを作成 2. Apple
Developerページにアップロード 3. 証明書をダウンロード 4. Macに証明書をインストール 5. キーチェーンアクセスでファイルに書き出す 6. コマンドラインでpem形式に変換 お客さま < Mac無いです! お客さま < 英語… お客さま < 何ですかそれ?
50.
ツール作った
54.
デモ
55.
https://www.monotty.com
57.
ありがとうございました @tomzoh デジタルサーカス(株) 声かけてください
58.
おまけ1
59.
エンディアン • f8a3b2というデータがあった時にメモリにどの様 に格納するか。 f8ビッグエンディアン +0 a3 +1 リトルエンディアン b2 +2 f8a3b2
60.
エンディアン • f8a3b2というデータがあった時にメモリにどの様 に格納するか。 f8ビッグエンディアン +0 a3 +1 リトルエンディアン b2 +2 f8a3b2 見た目通り!キモチイイ!
61.
エンディアン • f8a3b2というデータがあった時にメモリにどの様 に格納するか。 f8ビッグエンディアン +0 a3 +1 リトルエンディアン b2 +2 f8a3b2 見た目通り!キモチイイ! 何バイトの値を入れても「1の位」が 最初に来る!キモチイイ!
62.
エンディアン • f8a3b2というデータがあった時にメモリにどの様 に格納するか。 f8ビッグエンディアン +0 a3 +1 リトルエンディアン b2 +2 f8a3b2 見た目通り!キモチイイ! 何バイトの値を入れても「1の位」が 最初に来る!キモチイイ!
63.
エンディアン • f8a3b2というデータがあった時にメモリにどの様 に格納するか。 f8ビッグエンディアン +0 a3 +1 リトルエンディアン b2 +2 f8a3b2 見た目通り!キモチイイ! 何バイトの値を入れても「1の位」が 最初に来る!キモチイイ!
66.
エンディアン UTF-8のBOM = Byte Order
Mark = ビッグエンディアンかリトルエンディアンか
67.
エンディアン UTF-8のBOM = Byte Order
Mark = ビッグエンディアンかリトルエンディアンか 発表後やさしいマサカリ頂いた。 UTF-8だと関係無い。UTF-16だと関係ある。 @koyhogeさん感謝!!!
68.
エンディアン
69.
おまけ2
Download