Twilio JS客户端getChannelBySid错误-禁止

时间:2020-02-24 19:33:00

标签: javascript python twilio twilio-programmable-chat twilio-conversations

我正在使用Twilio的JS client。客户端需要使用以下代码创建的Access Token,然后推送到前端。

def generate_chat_token(self, identity, service_sid):
    """
    Generate a jwt chat token.
    """

    # Get a token.
    token = AccessToken(self.account_sid, self.api_key, self.api_secret, identity=identity)

    # Add a chat grant to the token.
    grant = ChatGrant(service_sid=service_sid)
    token.add_grant(grant)

    return token.to_jwt()

然后我可以使用以下方法在前端初始化客户端:

let client = await Twilio.Chat.Client.create(token);

这很好用-但是,当我尝试获取channel by SID时:

let channel = await client.getChannelBySid('CHXXXX');

我得到:

twilio-chat.min.js:171 Uncaught (in promise) Error: Forbidden
    at t (twilio-chat.min.js:171)
    at t (twilio-chat.min.js:171)
    at new t (twilio-chat.min.js:171)
    at e.<anonymous> (twilio-chat.min.js:171)
    at k (twilio-chat.min.js:171)
    at Generator._invoke (twilio-chat.min.js:171)
    at Generator.e.<computed> [as next] (twilio-chat.min.js:171)
    at n (twilio-chat.min.js:127)
    at twilio-chat.min.js:127

为了测试这一点,我还创建了一个独立的Ktor测试应用程序,并使用Java SDK创建了令牌。工作正常-获取频道没有错误。这就是为什么我验证使用伪造的令牌初始化客户端会失败的原因,所以我相信错误不是来自无效的令牌。我用来尝试获取频道的SID是以下内容返回的SID:

def get_conversations(self):
    """
    Get Twilio conversations.
    """

    return self.client.conversations.conversations.list()

同样,这在使用Java SDK的Ktor应用程序中也能正常工作,因此我不确定此处的Python实现有何不同。

我不确定如何进一步调试-如何在没有此错误的情况下从客户端获取特定频道?

0 个答案:

没有答案