twilio - Twilio 聊天频道 getMembers() 方法访问被禁止
问题描述
在 Twilio 可编程聊天服务中创建频道后,我正在监听客户端事件。
这些事件之一就是channelAdded
事件。在钩子中,我必须像这样检索频道的成员(以便在二进制房间中获取相反的成员名称)
channel.getMembers()
当我这样做时,Twilio 会返回:
name: "SyncError"
message: "Access forbidden for identity (status: 403, code: 54007)"
status: 403
code: 54007
如果访问该方法的用户也不是该频道的作者和成员,那将是有意义的。
我是否需要授予作者一些特殊权限才能访问该频道?
附加的次要问题
当我创建一个二进制频道(2 个成员)时,我需要手动将作者添加为频道的成员,如下所示:
var channel = await this.client.createChannel({
friendlyName: command.roomName,
isPrivate: command.isPrivateRoom
})
var p1 = channel.add(command.currentUserId);
var p2 = channel.add(command.oppositeUserId);
await Promise.all([p1,p2])
return command.roomName;
是否有快捷方式或方法可以在创建时自动添加成员?
解决方案
Twilio 开发人员布道者在这里。
根据文档:
创建频道后,用户必须加入该频道才能开始在该频道上接收或发送消息。
无论您是在客户端还是服务器端创建频道,您都需要专门与您的用户一起加入频道,然后他们才能访问它。此处唯一的捷径是您可以调用join()
频道以与经过身份验证的用户一起加入频道。例如:
await channel.join();
const members = await channel.getMembers();
推荐阅读
- java - Google PubSub 异步速率限制未按预期工作
- node.js - Jelastic 在 NodeJS 上实施 SSL
- java - 快速单击按钮后无法关闭 DialogFragment (Android)
- assembly - nasm 指令预期 inb outb
- javascript - 使用 wordpress rest api 发送评论元
- laravel - 帕斯卡案例属性上的 Laravel 访问器
- windows - For循环:未考虑变量
- python - 如何解决不匹配数组和列表之间相乘的广播问题
- python - 基于前一个元素的列表理解 if 语句
- angular - Angular - 类型“对象”在执行 http get 时缺少类型中的以下属性