PubNub 存在重复 403 禁止错误
PubNub Presence Repeating 403 Forbidden Error
我正在尝试在我的应用程序中使用 PubNub 存在,但我收到重复的禁止错误。我确实在 PubNub 管理门户中启用了权限。
这是我的订阅码:
var initSettings: pubnub.IInitSettings = {
publish_key: "myPubKey",
subscribe_key: "mySubKey",
uuid: "myUUID",
auth_key: "myAuthKey"
};
this.pubnub = PUBNUB(initSettings);
console.log(this.pubnub);
var subscribeSettings: pubnub.ISubscribeSettings = {
channel: "chat",
presence: this.userConnected,
message: this.processMessage
};
this.pubnub.subscribe(subscribeSettings);
这是我的 userConnected
回调:
userConnected = (m: any) => {
var hereNowSettings: pubnub.IHereNowSettings = {
channel: this.channelString,
callback: (message: any) => {
this.channelCount++;
}
};
this.pubnub.here_now(hereNowSettings);
};
我收到一个重复的错误
pubnub-3.7.14.js:2644 GET http://ps17.pubnub.com/subscribe/mySubKey/chat%2Cchat-pnpres/0/0?uuid=myUUID&pnsdk=PubNub-JS-Web%2F3.7.14 403 (Forbidden)
我不明白为什么会出现此错误。谁能解释一下?
更新:
我添加了一个密钥并授予我的 pubnub 配置:
createPubNubConnections() {
let initSettings: pubnub.IInitSettings = {
publish_key: publishKey,
subscribe_key: subscribeKey,
uuid: uuid,
auth_key: authKey,
secret_key: secretKey
};
this.pubnub = PUBNUB(initSettings);
console.log(this.pubnub);
let subscribeSettings: pubnub.ISubscribeSettings = {
channel: "chat",
presence: this.userConnected,
message: this.processMessage
};
this.pubnub.subscribe(subscribeSettings);
let grantSettings: pubnub.IGrantSettings = {
read: true,
callback: (message: any) => { console.log(message); }
};
this.pubnub.grant(grantSettings);
}
但是,现在我收到一条错误消息
Missing Secret Key
PubNub 访问管理器和授予权限
如果您启用了访问管理器,那么您的服务器必须向 read
授予该频道和在线状态频道的权限,前提是您要订阅(在线状态)该频道。
你说:
permissions enabled in the PubNub Admin Portal
...但是您没有在管理门户中启用(授予)权限,而是使用密钥在代码中授予权限。
有关如何使用 Access Manager 授予权限,请参阅以下链接:
TL;DR(来自上面的链接)
您必须 grant
read 对 channel 及其 -pnpres 频道的权限.因此,如果您授予对“chat”的读取权限,那么如果您想订阅在线状态事件,则需要授予对“chat-pnpres”的读取权限在那个频道上。它还为您提供 get/setState
、herenow
和 wherenow
频道权限 (chat)。
更新最新版本的 PubNub SDK
顺便说一下,对于当前的 PubNub SDK,secret-key
为您提供所有频道和频道组的所有权限。因此,当您使用 secret-key init
PubNub 时,请勿包含 auth-key,因为 auth- key 将覆盖 secret-key 对于所有 PubNub 请求,除了 grant
你的服务器。
Secret Key - All Permissions
Anyone with the secretKey can grant and revoke permissions to your app. Never let your secretKey be discovered, and to only exchange it / deliver it securely. Only use the secretKey on secure server-side platforms.
确保您也授予了在线状态频道的读取权限。
例如如果频道是 my_channel
,也授予对 my_channel-pnpres
存在频道的读取权限。
更多信息可用here
我正在尝试在我的应用程序中使用 PubNub 存在,但我收到重复的禁止错误。我确实在 PubNub 管理门户中启用了权限。
这是我的订阅码:
var initSettings: pubnub.IInitSettings = {
publish_key: "myPubKey",
subscribe_key: "mySubKey",
uuid: "myUUID",
auth_key: "myAuthKey"
};
this.pubnub = PUBNUB(initSettings);
console.log(this.pubnub);
var subscribeSettings: pubnub.ISubscribeSettings = {
channel: "chat",
presence: this.userConnected,
message: this.processMessage
};
this.pubnub.subscribe(subscribeSettings);
这是我的 userConnected
回调:
userConnected = (m: any) => {
var hereNowSettings: pubnub.IHereNowSettings = {
channel: this.channelString,
callback: (message: any) => {
this.channelCount++;
}
};
this.pubnub.here_now(hereNowSettings);
};
我收到一个重复的错误
pubnub-3.7.14.js:2644 GET http://ps17.pubnub.com/subscribe/mySubKey/chat%2Cchat-pnpres/0/0?uuid=myUUID&pnsdk=PubNub-JS-Web%2F3.7.14 403 (Forbidden)
我不明白为什么会出现此错误。谁能解释一下?
更新:
我添加了一个密钥并授予我的 pubnub 配置:
createPubNubConnections() {
let initSettings: pubnub.IInitSettings = {
publish_key: publishKey,
subscribe_key: subscribeKey,
uuid: uuid,
auth_key: authKey,
secret_key: secretKey
};
this.pubnub = PUBNUB(initSettings);
console.log(this.pubnub);
let subscribeSettings: pubnub.ISubscribeSettings = {
channel: "chat",
presence: this.userConnected,
message: this.processMessage
};
this.pubnub.subscribe(subscribeSettings);
let grantSettings: pubnub.IGrantSettings = {
read: true,
callback: (message: any) => { console.log(message); }
};
this.pubnub.grant(grantSettings);
}
但是,现在我收到一条错误消息
Missing Secret Key
PubNub 访问管理器和授予权限
如果您启用了访问管理器,那么您的服务器必须向 read
授予该频道和在线状态频道的权限,前提是您要订阅(在线状态)该频道。
你说:
permissions enabled in the PubNub Admin Portal
...但是您没有在管理门户中启用(授予)权限,而是使用密钥在代码中授予权限。
有关如何使用 Access Manager 授予权限,请参阅以下链接:
TL;DR(来自上面的链接)
您必须 grant
read 对 channel 及其 -pnpres 频道的权限.因此,如果您授予对“chat”的读取权限,那么如果您想订阅在线状态事件,则需要授予对“chat-pnpres”的读取权限在那个频道上。它还为您提供 get/setState
、herenow
和 wherenow
频道权限 (chat)。
更新最新版本的 PubNub SDK
顺便说一下,对于当前的 PubNub SDK,secret-key
为您提供所有频道和频道组的所有权限。因此,当您使用 secret-key init
PubNub 时,请勿包含 auth-key,因为 auth- key 将覆盖 secret-key 对于所有 PubNub 请求,除了 grant
你的服务器。
Secret Key - All Permissions
Anyone with the secretKey can grant and revoke permissions to your app. Never let your secretKey be discovered, and to only exchange it / deliver it securely. Only use the secretKey on secure server-side platforms.
确保您也授予了在线状态频道的读取权限。
例如如果频道是 my_channel
,也授予对 my_channel-pnpres
存在频道的读取权限。
更多信息可用here