APN使用一台设备但不使用多台设备

时间:2015-11-01 15:20:07

标签: php apple-push-notifications devicetoken

我正在尝试向一堆iPad发送推送通知,并首先使用我的设备对其进行测试。它运作得很好。然后我尝试将其扩展为包括多个设备,包括我自己的设备,它似乎不起作用(与其他相关设备持有人核实只是为了确保)。设备令牌信息似乎没问题。可能有什么不对?也许这是一个限制问题?

我尝试重写以下教程中的所有内容,问题仍然相同: http://learn-php-by-example.blogspot.co.il/2013/01/working-with-apple-push-notification.html

我在checkAppleErrorResponse函数中没有错误。

以下是从一个设备更改为多个设备时更改的代码:

foreach ($device_tokens as $token)
{
    $apple_identifier = '[censored]';
    $payload = json_encode($body);

    $msg = pack("C", 1) . pack("N", $apple_identifier) . pack("N", $apple_expiry) . pack("n", 32) . pack('H*', str_replace(' ', '', $token)) . pack("n", strlen($payload)) . $payload; 

    /* Actually sends the notification */
    fwrite($fp, $msg);

    $this->checkAppleErrorResponse($fp);
}

更新:我尝试手动复制一些令牌,并在设备收到通知时进行随机测试。虽然我不能说结果是确凿的,但事实证明,当所有令牌肯定有效时(我们公司中存在的设备),消息就会通过。但是,当我添加至少一个我无法亲自检查的设备(意味着它可能无效或用户拒绝通知)时,列表中的所有设备都不会收到消息。

问题是,这是否意味着Apple要求整个令牌阵列是其所有者授权APN的有效设备? (似乎完全不合逻辑,但这是我能想到的唯一解释)。

0 个答案:

没有答案