Вот мой код, который возвращает токен пользователя чата, который должен использоваться для участия в разговоре с использованием программируемого чата twilio.Взял источник от здесь .
def token(request):
identity = request.GET.get('identity', request.user.email)
device_id = request.GET.get('device', 'default') # unique device ID
account_sid = settings.TWILIO_ACCOUNT_SID
api_key = settings.TWILIO_API_KEY
api_secret = settings.TWILIO_API_SECRET
chat_service_sid = settings.TWILIO_CHAT_SERVICE_SID
token = AccessToken(account_sid, api_key, api_secret, identity=identity)
# Create a unique endpoint ID for the device
endpoint = "MiniSlackChat:{0}:{1}".format(identity, device_id)
if chat_service_sid:
chat_grant = ChatGrant(endpoint_id=endpoint,
service_sid=chat_service_sid)
token.add_grant(chat_grant)
response = {
'identity': identity,
'token': token.to_jwt().decode('utf-8')
}
return JsonResponse(response)
Но после одного успешного разговора между двумя пользователями я получаю Error: Channel member limit exceeded
(я настроил двух пользователей на ограничение канала, потому что мне не нужнофункция конференц-чата).Я думаю, что это происходит из-за того, что токен создается заново при каждой загрузке страницы.Как мне написать свой код, чтобы позволить пользователю участвовать в чате со своим старым токеном?Я пытался сохранить сгенерированный токен следующим образом:
def token(request):
identity = request.GET.get('identity', request.user.email)
device_id = request.GET.get('device', 'default') # unique device ID
account_sid = settings.TWILIO_ACCOUNT_SID
api_key = settings.TWILIO_API_KEY
api_secret = settings.TWILIO_API_SECRET
chat_service_sid = settings.TWILIO_CHAT_SERVICE_SID
token = request.user.twilio_token
endpoint = "Qiwi-chat:{0}:{1}".format(identity, device_id)
if token:
token = token.encode('utf-8')
else:
token = AccessToken(account_sid, api_key, api_secret, identity=identity)
request.user.twilio_token = token.to_jwt().decode('utf-8')
request.user.save()
if chat_service_sid:
chat_grant = ChatGrant(endpoint_id=endpoint,
service_sid=chat_service_sid)
token.add_grant(chat_grant)
token = request.user.twilio_token
# Create a unique endpoint ID for the device
response = {
'identity': identity,
'token': token.decode('utf-8')
}
return JsonResponse(response)
Но получил эту ошибку:
Failed to create session Error: Invalid Access Token grants