我创建了一个简单的iOS原生应用程序,除了OneSignal初始化代码之外什么都没有。我在我的2台设备,设备A和设备B上安装了我的应用程序。这两台设备都订阅了我的OneSignal App Console。当我从OneSignal Web控制台发送通知时,这2个设备都可以重新收到通知。
当我点击设备A上的按钮时,设备A将向设备B发送通知。
我按照OneSignal iOS SDK文档创建了以下功能 https://documentation.onesignal.com/docs/ios-native-sdk#section-sending-notifications
func onButtonClick() {
OneSignal.postNotification(
[
"contents": ["en": "Test Message"],
"include_player_ids": ["c00bb8a6-79da-419b-9999-e919831a5223"] // id of device B
],
onSuccess: {(result) in print("success") },
onFailure: {(error) in print("error : \(error)") }
)
}
但是,当我单击该按钮时,xCode调试控制台中会显示错误:
2017-01-20 11:15:52.702852 my.bundle.id[2263:1201122] ERROR: Create notification failed
error : Optional(Error Domain=OneSignalError Code=400 "(null)" UserInfo={returned={
errors = (
"Please include a case-sensitive header of Authorization: Basic <YOUR-REST-API-KEY-HERE> with a valid REST API key."
);
reference = (
"https://documentation.onesignal.com/docs/accounts-and-keys#section-keys-ids"
);
}})
我很困惑,因为根据OneSignal参考文档,发送通知&#34; include_player_ids&#34; 不需要API验证密钥。
https://documentation.onesignal.com/reference#create-notification
它还说:永远不要使用你的REST API密钥&#39;在客户端代码中,它仅适用于您的系统或服务器。
那么这个错误意味着什么?我该怎么办?
我甚至复制并运行这个&#34;工作没有任何问题&#34;来自this discussion的代码,但仍会显示相同的授权错误。我做错了什么?
答案 0 :(得分:2)
只需升级SDK即可解决问题。
这是OneSignal-iOS-SDK 2.3.1
中的一个错误,此错误已在2.3.2
中修复。
请参阅他们的Github Release Notes。
始终在pod repo update
之前运行pod install
,以确保pod安装最新版本的框架。
感谢来自One Signal Conversations的Kevin,Jason和Josh帮助我解决这个问题。