Проблема APNS с токеном устройства не для топи c и неверным токеном устройства в PHP - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь интегрировать отправку 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)

Спасибо за аванс.

...