从twilio函数获取令牌后,Twilio聊天客户端对iOS的作用为零

时间:2019-05-31 10:14:33

标签: twilio twilio-api twilio-functions

我正在尝试将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

      }
  }

1 个答案:

答案 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_SIDCHAT_PUSH_CREDENTIAL_SIDACCOUNT_SIDCHAT_TWILIO_API_KEY和{{1} }。

如果其中任何一个缺失或不正确,则您的令牌将无效。

让我知道怎么回事。