Клиент чата Twilio для iOS не работает после получения токена от функции twilio - PullRequest
2 голосов
/ 31 мая 2019

Я пытаюсь интегрировать чат 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 Ответ

2 голосов
/ 03 июня 2019

Twanio developer evangelist здесь.

Кажется, что что-то не так с генерацией вашего токена, когда вы получаете сообщение об ошибке при попытке создать клиент чата.

Код, который вы используете дляГенерировать токен в основном правильно, хотя и немного устарело.Теперь мы можем использовать 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и CHAT_TWILIO_API_SECRET.

Если какой-либо из них отсутствует или неверен, ваш токен будет недействительным.

Дайте мне знать, как это происходит.

...