gpt4 book ai didi

apple-push-notifications - SendEmptyPushNotification 到 gateway.push.apple.com 不再工作

转载 作者:行者123 更新时间:2023-12-03 23:38:46 24 4
gpt4 key购买 nike

至少在过去几天(可能更长),当我向至少 1 个测试设备发送空推送通知时,似乎什么也没发生。我几乎使用与下面发布的文章相同的 SendEmptyPushNotification 代码。
https://medium.com/@yangzhoupostbox/part-2-push-notification-for-updating-apple-pass-in-asp-net-6020768d112
我的测试设备运行的是 iOS 14.4.1。我可以手动更新 Pass,这样 WebServiceURL 就可以工作了。
我的证书今年晚些时候到期。我已经重新启动了我的设备。这一切都过去了,我没有改变任何东西。
注意:看起来 AppleDeviceLibraryIdentifier 和 ApplePushToken 会随着时间而变化。在安装了通行证的 Apple 设备的整个生命周期内,这些内容应该改变还是保持不变?我想知道新的 PushToken 是否可能是问题所在。这似乎是预期的行为。 Does the Device Library Identifier change with the Push Token?
有谁知道可能出了什么问题?其他人有问题吗?

最佳答案

我也是男人。让我们像 Apex Legends 一样解决这个问题。
我已向 Apple 提交了 TSI。他们在 2 月 10 日发了一封电子邮件说:
在 2021 年 3 月 29 日,与 Apple 推送通知服务的基于 token 和证书的 HTTP/2 连接必须包含新的根证书 (AAACertificateServices 5/12/2020),以取代旧的 GeoTrust Global CA 根证书。为确保无缝过渡并避免推送通知传递失败,请在 3 月 29 日之前验证 HTTP/2 接口(interface)的旧根证书和新根证书是否都包含在每个通知服务器的信任库中。
请注意,Apple 向您颁发的 Apple Push Notification 服务 SSL 提供商证书此时不需要更新。
了解有关连接到 APN 的更多信息。
如果您有任何问题,请联系我们。
最好的祝福,
苹果开发者关系
更新 - 5 月 3 日星期一,在向 Apple Dev 提交 TSI 后

  • 在 Apple 迁移到新的 APNS 提供程序 API(http/2 协议(protocol))后,推送通知于 2021 年 3 月 31 日停止为开发人员工作。
  • 要继续使用推送,请参阅此页面:https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/
  • 在那个页面上,我对这 3 个项目特别感兴趣:
    Registering Your App with APNs
    Establishing a Token-Based Connection to APNs
    Generating a Remote Notification


  • 我学到的是?
    撤销所有与 APNS 相关的开发者账户证书
    制作新证书,这次在将它们安装到您的提供服务器时不要制作任何 PEM 文件。另外,请确保停止使用端口 2195当连接到 APNS 并使用 4432197 .
    好消息?新的 APNS 提供者 API 仍然与 Objective C 兼容!
    🐆
    <?php
    // Put your device token here (without spaces):
    $deviceToken = '09a0c8ff92b3621c5f5032c1fa031f2851d01dd99beaf1446c281c5458fe2ffd';
    // Put your private key's passphrase here:
    $passphrase = 'pushchat';
    // Put your alert message here:
    $message = 'Hello!';

    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
    // Open a connection to the APNS server
    $fp = stream_socket_client(
    'ssl://gateway.sandbox.push.apple.com:2195', $err,
    $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
    if (!$fp)
    exit("Failed to connect: $err $errstr" . PHP_EOL);
    echo 'Connected to APNS' . PHP_EOL;
    // Create the payload body
    $body['aps'] = array(
    'alert' => $message,
    'sound' => 'default'
    );
    // Encode the payload as JSON
    $payload = json_encode($body);
    // Build the binary notification
    $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n',
    strlen($payload)) . $payload;
    // Send it to the server
    $result = fwrite($fp, $msg, strlen($msg));
    if (!$result)
    echo 'Message not delivered' . PHP_EOL;
    else
    echo 'Message successfully delivered' . PHP_EOL;
    // Close the connection to the server
    fclose($fp);
    更新:我对 PEM 方面的看法是错误的。对于使用新的 APNs Provider API 的 APNs 连接,仍然需要创建 PEM 文件。

    关于apple-push-notifications - SendEmptyPushNotification 到 gateway.push.apple.com 不再工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67308054/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com