我正在尝试将Twilio聊天(消息,语音和视频)集成到我的应用程序中。 我无法通过以下代码获取聊天客户端
// Set up Twilio Chat client after getting token
TwilioChatClient.chatClient(withToken: token, properties: nil, delegate: self) {(result, chatClient) in
// Here chatClient is coming nil all the time and the result is not successful.
self.client = chatClient
}
}
答案 0 :(得分:2)
这里是Twilio开发人员的传播者。
生成令牌时似乎出现了问题,因为在尝试实例化聊天客户端时遇到错误。
您用来生成令牌的代码大部分是正确的,尽管有些过时了。我们现在可以使用ChatGrant
,而不是IpMessagingGrant
,并且不再需要包含endpointId
。我会将您的功能更新为:
exports.handler = function(context, event, callback) {
let identity = event.identity;
let AccessToken = Twilio.jwt.AccessToken;
let ChatGrant = AccessToken.ChatGrant;
let chatGrant = new ChatGrant({
serviceSid: context.CHAT_SERVICE_SID,
pushCredentialSid: context.CHAT_PUSH_CREDENTIAL_SID
});
const accessToken = new AccessToken(
context.ACCOUNT_SID,
context.CHAT_TWILIO_API_KEY,
context.CHAT_TWILIO_API_SECRET
);
accessToken.addGrant(chatGrant);
accessToken.identity = identity;
callback(null, { token: accessToken.toJwt() });
};
此外,我将确认您已在函数配置中正确设置了以下环境变量:CHAT_SERVICE_SID
,CHAT_PUSH_CREDENTIAL_SID
,ACCOUNT_SID
,CHAT_TWILIO_API_KEY
和{{1} }。
如果其中任何一个缺失或不正确,则您的令牌将无效。
让我知道怎么回事。