【问题标题】:Invalid DeviceToken Length when sending passkit push by PushSharp通过 PushSharp 发送 passkit 推送时,DeviceToken 长度无效
【发布时间】:2023-04-02 08:54:01
【问题描述】:

我尝试在 Apple passkit 相关项目中使用 PushSharp。

我目前的问题是关于 passkit 推送。

当我尝试创建通知时,它说

设备令牌长度无效(确切的异常消息:Invalid DeviceToken Length.

var notif = new ApnsNotification(token, payload);

当我注册一个新的 passkit 优惠券时,它的令牌长度是 32。对我来说似乎没问题。

应该是什么问题? PushSharp 是否完全支持 passkit?如我所见,有些人使用它,但我找不到任何关于它的官方信息。

请注意,我知道 PushSharp,因为我用它来发送 Normal 推送消息,它已经工作了多年,对我来说没有任何问题。我的问题是关于 passkit 相关的推送。

非常感谢!

编辑

按照 Baris Akar 的建议更改代码后,问题解决了,但又来了一个问题:

Apple Notification Failed: ID=1, Code=ConnectionError

2016-11-18 11:07:22.de。 [INFO] 停止:等待任务 2016-11-18 11:07:22.de。 [INFO] 等待所有任务 1 2016-11-18 11:07:22.de。 [INFO] APNS-Client[1]:发送批次 ID=1,计数=1 2016-11-18 11:07:22.de。 [INFO] APNS-Client[1]:已发送批次,等待可能的响应... Apple 通知失败:ID=1, Code=ConnectionError 2016-11-18 11:07:22.de。 [信息] 所有任务 完成于 2016-11-18 11:07:22.de。 [INFO] 通过WhenAll 2016-11-18 11:07:22.de。 [INFO] Broker IsCompleted 2016-11-18 11:07:22.de。 [调试] 经纪人任务于 2016-11-18 11:07:22.de 结束。 [信息] 停止:完成 等待任务 2016-11-18 11:07:22.de。 [信息] APNS 客户端 [1]:完成 读取 Batch ID=1,重置批处理计时器...

【问题讨论】:

标签: c# apple-push-notifications pushsharp passkit


【解决方案1】:

an older version 中似乎是这样的:

var n = new AppleNotification().WithPasskitUpdate();

函数WithPasskitUpdate() 不再可用,但这应该是等效的:

var notif = new ApnsNotification();
notif.DeviceToken = token;
notif.Payload = payload;

没有测试过,但是在检查了代码之后,也许它可以工作。基本上,您以这种方式绕过了token length check in the ApnsNotification constructor(如果令牌对于 passkit 推送来说较小,这应该是固定的)。

还要确保使用正确的证书(这似乎与常规推送通知的证书不同)并使用生产设置,因为似乎没有用于存折的沙盒环境(请参阅this answer)。

此外,您需要将false 传递给ApnsConfiguration 构造函数的validateIsApnsCertificate 参数,因为检查不处理pushkit 证书的证书。

var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, certificateFile, certificateFilePwd, false);

【讨论】:

  • 还要确保使用正确的证书(这似乎与常规推送通知的证书不同)并使用生产证书进行测试,因为似乎没有用于存折的沙箱环境(请参阅@ 987654324@).
  • 谢谢大家!我试试你的代码,证书没问题,100%。
  • 我试过了,它解决了这个问题,但又出现了另一个问题。请。检查我的问题中的更新。非常感谢!
  • @Tom: 尝试为ApnsConfiguration 构造函数的validateIsApnsCertificate 参数传递false,因为检查不处理pushkit 证书的证书:var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, certificateFile, certificateFilePwd, false);
  • 设置为false
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多