- Web Engineer
- アウトバウンド営業
- Webエンジニア(経験者)
- Other occupations (19)
- Development
- Business
はじめに
最近、iOS の Push 通知の実装を修正したのですが、その際、設定がうまくいっているか確認するため、コマンドを使ってPush通知を送信しました。
今回、コマンドを使ってPush通知を送信する方法を備忘録としてまとめたいと思います。
- 参考
証明書(.p12)を使用して Push 通知を送信
iOS の Push 通知には、トークン(.p8)を使用しての通知送信と証明書(.p12)を使用しての通知送信があります。
まずは、証明書(.p12)を使用しての通知送信についてです。
- 参考
P12 形式のファイルを PEM 形式に変換する
Push 通知の証明書からキーを書き出す際に P12 形式で書き出しますが、コマンド送信の際には、P12 形式を使用することができないため、PEM 形式への変換が必要になります。
以下のコマンドを実行し、P12 形式から PEM 形式へ変更を行います。
openssl pkcs12 -in $HOME/my-project-push.p12 -out $HOME/my-project-push.pem -legacy -nodes環境変数の設定
Push 通知を送信する際に必要な情報は、あらかじめ環境変数に設定しておきます。
CERTIFICATE_FILE_NAME='$HOME/my-project-push.cer' // プッシュ通知証明書のパスを設定
CERTIFICATE_KEY_FILE_NAME='$HOME/my-project-push.pem' // P12形式から変換したPEM形式のファイルパスを設定
TOPIC='com.myProject' // アプリのBundleIDを設定
DEVICE_TOKEN='1234567890...' // アプリで発行されるデバイストークンを設定
APNS_HOST_NAME='api.sandbox.push.apple.com' // APNsのホスト名を設定。開発環境と本番環境で異なるAPNS_HOST_NAME には APNs サーバーのホスト名を設定します。
APNs には開発サーバーと本番サーバーがあり、以下のいずれかを設定します。
- 開発サーバー:api.sandbox.push.apple.com
- 本番サーバー:api.push.apple.com
基本的に Xcode で実機ビルドした場合はapi.sandbox.push.apple.com、TestFlight で実機インストールした場合はapi.push.apple.comになるかと思います。
- 参考:
APNs への接続確認
以下のコマンドを実行し、APNs へ問題なく接続できることを確認します。
openssl s_client \
-connect "${APNS_HOST_NAME}":443 \
-cert "${CERTIFICATE_FILE_NAME}" \
-certform DER \
-key "${CERTIFICATE_KEY_FILE_NAME}" \
-keyform PEM特にエラーなど表示されず、Verify return code: 0 (ok)が表示されれば OK です。
Push 通知の送信
APNs の接続確認ができたら、以下のコマンドで Push 通知を送信します。
curl -v \
--header "apns-topic: ${TOPIC}" \
--header "apns-push-type: alert" \
--cert "${CERTIFICATE_FILE_NAME}" \
--cert-type DER \
--key "${CERTIFICATE_KEY_FILE_NAME}" \
--key-type PEM \
--data '{"aps":{"alert":"test"}}' \
--http2 https://${APNS_HOST_NAME}/3/device/${DEVICE_TOKEN}特に問題なければ HTTP ステータス 200 で通知が送信されます。
…
記事の続きは下のURLをクリック!
https://rightcode.co.jp/blogs/53320
エンジニア積極採用中です!
現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!
採用ページはこちら:https://rightcode.co.jp/recruit
社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life
フリーランスエンジニア大募集中!
現在、「WEBエンジニア」「フロントエンジニア」「データサイエンティスト」など、様々な職種のフリーランスエンジニア様を募集中です。まずは以下よりお気軽にご応募ください!
採用ページはこちら:https://itanken.com/register
社長と一杯飲みながらお話しませんか?(転職者向け)
特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk
もっとワクワクしたいあなたへ
現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!
ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?
ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。
- ライトコードの魅力を知っていただきたい!
- 社風や文化なども知っていただきたい!
- 技術に対して熱意のある方に入社していただきたい!
一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。
Wantedly:https://www.wantedly.com/companies/rightcode
コーポレート:https://rightcode.co.jp/