我正在尝试使用PubNub在react-native项目上设置推送通知。但是,调用push.addChannels()方法会给出错误403" PNAccessDeniedCategory"。
我尝试关闭访问管理器,但仍然得到相同的结果。不确定我是否通过了正确的参数。
我已经使用apple设置推送通知,并将cert.pem文件上传到PubNub。
pubnub.push.addChannels({
channels: ['ch.staff'],
device: 'ECID-OF-DEVICE-HERE',
pushGateway: 'apns' // apns, gcm, mpns
}, function(status) {
if (status.error) {
console.log("operation failed w/ error:", status);
} else {
console.log("operation done!")
}
});
我可以毫无问题地发送和接收标准邮件,只是这不起作用。
我在这里关注文档:
我的主要问题是。
我是否需要授予使用此方法的权限,我该怎么做? 设备字段应该是ECID吗?
答案 0 :(得分:0)
Access Manager拒绝访问,因为客户端设备的auth-key没有read
权限(或者根本没有auth-key)。
在您准备好为服务器授予客户端auth-key权限之前,请先禁用Access Manager,或者为客户端的auth-key授予read
权限,以获取注册以进行推送的通道(并可选择订阅)。
有关完整详细信息,请参阅PubNub JavaScript SDK文档Access Manager教程中的PubNub Nub operations/permissions mapping。
答案 1 :(得分:0)
授予权限看起来像这样:
pubnub.grant(
{
channels: ['ch.staff'],
authKeys: ['clientAuthKey'],
read: true, // false to disallow
write: true, // false to disallow
},
function (status) {
// handle state setting response
console.log('Status', status)
}
);