php - 使用 pubnub 访问管理器通过 php 发布的问题

标签 php pubnub

我正在尝试将 pubnub 与他们的访问管理器一起使用,以授权某些用户访问特定 channel ,然后在用户被授予读/写权限后向该 channel 发布消息。在授予用户访问权限后,我一定是在 publish() 调用上做错了什么。下面代码的第一部分返回看起来像是对 grant() 的成功响应,但 publish() 调用的结果是:

fatal error :调用/home/dayfv98/public_html/mobile/pubtest.php 中的未定义方法 access::publish() 第 48 行

这是我的代码:

<?php


error_reporting(E_ALL);
ini_set('display_errors', 1);


require('pubnub.php');

require('pam.php');


$chat_entry =  addslashes(trim($_POST['chat_entry']));


// CONNECT TO ACCESS MANAGER

$manager = new access(
    "MY_PUB_KEY...not included for security",
    "MY_SUB_KEY...not included for security",
    "MY_SEC_KEY...not included for security"

);


## Grant User Access
print_r($manager->grant(
    "chat",        // CHANNEL
    "44444",  // STRING (AUTH KEY)
    true,                // READ
    true,                // WRITE
    0                    // TTL in MINUTES
));


$manager->publish(array(
    'channel' => 'chat', ## REQUIRED Channel to Send
    'message' => $chat_entry

));



?>

最佳答案

访问管理器库不打算用于执行访问管理器范围之外的任何事情。它仅用于授权、撤销和审计。

您将需要使用普通的 PubNub sdk,但在构造您的 PubNub 对象时,请提供您之前授予的身份验证 token 。

**编辑:** PHP SDK 现在似乎与 Access Manager 有一些问题。我做了一些小的修补程序修改来解决这个问题,并将它们包含在要点中,但请留意 github 上的官方存储库以获取更新版本:https://gist.github.com/keyosk/9c86b981948a3cf7f378

例如,要使用您在上面的示例中授予的身份验证 token ,您可以这样做:

$pubnub = new Pubnub(array(
    'publish_key' => 'MY_PUB_KEY',
    'subscribe_key' => 'MY_SUB_KEY',
    'auth_token' => '44444',
));

$pubnub->publish(array(
    'channel' => 'chat',
    'message' => $chat_entry
));

关于php - 使用 pubnub 访问管理器通过 php 发布的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23184001/

相关文章:

php - 尝试使用 ftp_put 函数上传 .zip 文件,但无法上传大文件(超过 1 MB)

php - SQL自动递增同一张表多次

php - 将html表单数据插入数据库

ios - PubNub 显示打字指示器

javascript - 我们可以在 PUBNUB 中重新发布消息吗

php - 电子邮件被放入垃圾邮件 - 错误的 header 问题

php - 将组数据填充到 Highcharts 上的特定系列

java - 使用 pubnub 制作 Android 应用程序发送 GPS 信息,但应用程序崩溃并且没有显示错误

android - pubnub 邀请其他人加入群聊

javascript - 无法使用 PubNub WebRTC 教程