APNsPHP で HTTP/2 プロトコル に対応する

プログラミング

APNs【Apple Push Notification service】によるレガシーバイナリプロトコルでのプッシュ通知は、2021 年 3 月 31 日サポートが終了します
このため、HTTP/2 ベースの APNs である APNs Provider API に移行する必要があります。

参考: APNs Provider API の期限の変更


ApnsPHP ライブラリを使用している場合
ApnsPHP というプッシュ通知用のライブラリを使用している方は要注意です。
正式版の ApnsPHP は、HTTP/2 プロトコルに対応していません


でも大丈夫です!
GitHub からプレリリース版の v2.0.0-alpha を持ってきましょう。

Release HTTP/2 Protocol support.
https://github.com/immobiliare/ApnsPHP/releases/tag/v2.0.0-alpha

すでにApnsPHPをインストール済みの方は、以下の3つのファイルを上書きすれば OK です。

ApnsPHP/Abstract.php
ApnsPHP/Message.php
ApnsPHP/Push.php



呼び出し元ソースコードの修正
呼び出し元のソースコードも少し修正する必要があります。

<?php
require_once 'vendor/autoload.php';

$push = new ApnsPHP_Push(
	ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,
	'server_certificates_bundle_sandbox.pem',
	ApnsPHP_Abstract::PROTOCOL_HTTP // ★HTTPプロトコルを使用!
);

$push->setRootCertificationAuthority('entrust_root_certification_authority.pem');
$push->connect();
$message = new ApnsPHP_Message('Device Token...');

// Set the topic of the remote notification (the bundle ID for your app)
$message->setTopic('com.armiento.test'); // ★バンドルID

$message->setText('Hello APNs-enabled device!');

$push->add($message);
$push->send();
$push->disconnect();

?>


参考: ApnsPHP サンプルソース

コメント