使用pubnub

时间:2016-09-21 12:10:00

标签: pubnub

我正在尝试使用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!")
        }
      });

我可以毫无问题地发送和接收标准邮件,只是这不起作用。

我在这里关注文档:

https://www.pubnub.com/docs/javascript/mobile-gateway-sdk-v4#Provisioning_devices_with_channel_names_per_lang_Examples

我的主要问题是。

我是否需要授予使用此方法的权限,我该怎么做? 设备字段应该是ECID吗?

2 个答案:

答案 0 :(得分:0)

PubNub移动推送+访问管理器

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)
}
);