Я пытаюсь интегрировать отправку APNS для VOIP, используя эту PHP Клиентскую библиотеку:
composer require edamov/pushok
Я выполнил шаги, чтобы указать правильное значение в $options
массив, который я не могу здесь раскрыть.
Когда я пытался сбросить переменные в следующем коде:
$options = [
'key_id' => $keyid, // The Key ID obtained from Apple developer account
'team_id' => $teamid, // The Team ID obtained from Apple developer account
'app_bundle_id' => $bundleid, // The bundle ID for app obtained from Apple developer account
'private_key_path' => $keyfile, // Path to private key
'private_key_secret' => null // Private key secret
];
$authProvider = AuthProvider\Token::create($options);
$alert = Alert::create()->setTitle('Hello!');
$alert = $alert->setBody('First push notification');
$payload = Payload::create()->setAlert($alert);
//set notification sound to default
$payload->setSound('default');
$deviceTokens = [$token];
$notifications = [];
foreach ($deviceTokens as $deviceToken) {
$notifications[] = new Notification($payload,$deviceToken);
}
$client = new \Pushok\Client($authProvider, $production = false);
$client->addNotifications($notifications);
$responses = $client->push(); // returns an array of ApnsResponseInterface (one Response per Notification)
var_dump($responses);
Вот что я получаю:
array (size=1)
0 =>
object(Pushok\Response)[1564]
private 'apnsId' => string '7EEEWAYS-BE3F-P0RK-J3RK-706FC55D5ABS' (length=36)
private 'deviceToken' => string 'wlo83peah2f2ql686sfitzasro2wghri85x2l128t7gqysoba9jaezsve0y0nvpm' (length=64)
private 'statusCode' => int 400
private 'errorReason' => string 'DeviceTokenNotForTopic' (length=22)
private 'error410Timestamp' => string '' (length=0)
Я хотел бы спросить или обратитесь за помощью о том, почему я получаю ошибку HTTP400
DeviceTokenNotForTopic
, хотя я думаю, что предоставленные значения в массиве $options
верны?
Кроме того, я только что обнаружил, что когда я меняю значение второго параметр $ client от этого:
$client = new \Pushok\Client($authProvider, $production = false);
$client->addNotifications($notifications);
до этого
$client = new \Pushok\Client($authProvider, $production = true);
$client->addNotifications($notifications);
Я получаю BadDeviceToken
HTTP400
ошибку:
array (size=1)
0 =>
object(Pushok\Response)[1564]
private 'apnsId' => string '733TWAYS-S0UR-F1SH-CH0W-706FC55D5ABS' (length=36)
private 'deviceToken' => string 'wlo83peah2f2ql686sfitzasro2wghri85x2l128t7gqysoba9jaezsve0y0nvpm' (length=64)
private 'statusCode' => int 400
private 'errorReason' => string 'BadDeviceToken' (length=14)
private 'error410Timestamp' => string '' (length=0)
Спасибо за аванс.