2016-05-19 2 views
1

Я пытаюсь интегрировать службы IP сообщениями Twilio, и я пытаюсь следовать их руководство здесь: https://www.twilio.com/docs/api/ip-messaging/guides/identityTwilio Twilsock соединение закрыто сервером

Я использую AngularJS передний конец с Node.js бэкэндом.

Вот мой бэкенд вызов, который выполняет отлично:

getTwilioToken: function (request, response) { 

    var appName = 'AppTwilio'; 
    var identity = request.body.id; 
    var deviceId = request.body.device; 

    // Create a unique ID for the client on their current device 
    var endpointId = appName + ':' + identity + ':' + deviceId; 

    // Create a "grant" which enables a client to use IPM as a given user, 
    // on a given device 
    var ipmGrant = new IpMessagingGrant({ 
     serviceSid: "[MY_PROD_SID]", 
     endpointId: endpointId 
    }); 

    // Create an access token which we will sign and return to the client, 
    // containing the grant we just created 
    var token = new AccessToken(
     "[MY PROD ACCOUNT SID]", 
     "[MY PROD ACCOUNT SID]", 
     "[Prod Auth Token]" 
    ); 
    token.addGrant(ipmGrant); 
    token.identity = identity; 

    // Serialize the token to a JWT string and include it in a JSON response 
    response.send({ 
     identity: identity, 
     token: token.toJwt() 
    }); 
} 

Вот мой AngularJS материал:

Это в моем MessagingService это выполняет прекрасно

getTwilioToken: function (userid, devicekey) { 
     return $http.post(apiUrl + '/getTwilioToken', { id: userid, device: devicekey }).then(function (response) { 
      deferred.resolve(response.data); 
      return deferred.promise; 
     }); 
    } 

В мой контроллер у меня есть подключенной к телефонной линии:

$scope.getTwilioToken = function() { 

    var userid = uuid.v4(); //just creating a dummy id for now 
    var device = uuid.v4(); //just creating dummy device for now 

    MessagingService.getTwilioToken(userid, device).then(function (response) { 
     $scope.accessManager = new Twilio.AccessManager(response.token); 
     $scope.messagingClient = new Twilio.IPMessaging.Client($scope.accessManager); 

    }); 

} 

Вот мой ответ я получаю назад от моего сервера/Twilio, который включает в себя маркер:

{ 
    "identity": "1f778bb6-2b3f-4008-9697-4733cf7870c5", 
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImN0eSI6InR3aWxpby1mcGE7dj0xIn0.eyJqdGkiOiJBQzg1ZTNkYTYzZjNiY2MxNTY3ODdjMDA5NzdjZTBhNDA5LTE0NjM2NzM0MDYiLCJncmFudHMiOnsiaWRlbnRpdHkiOiIxZjc3OGJiNi0yYjNmLTQwMDgtOTY5Ny00NzMzY2Y3ODcwYzUiLCJpcF9tZXNzYWdpbmciOnsic2VydmljZV9zaWQiOiJJUzMyNjhlN2NhYWYxZDRlYTk5MGM5NWZkMTRkNWQ0NDM0IiwiZW5kcG9pbnRfaWQiOiJSaXNlclVUd2lsaW86MWY3NzhiYjYtMmIzZi00MDA4LTk2OTctNDczM2NmNzg3MGM1Ojc4NzcxNDc3LWJmZjktNDU3NC04Njc4LWQwOGZiM2Q0YjcxMCJ9fSwiaWF0IjoxNDYzNjczNDA2LCJleHAiOjE0NjM2NzcwMDYsImlzcyI6IkFDODVlM2RhNjNmM2JjYzE1Njc4N2MwMDk3N2NlMGE0MDkiLCJzdWIiOiJBQzg1ZTNkYTYzZjNiY2MxNTY3ODdjMDA5NzdjZTBhNDA5In0.XIUAGoyO8EtKZOfzbRe4qo-1wXddiMGswidbakUE2ZA" 
} 

Я получаю эти ошибки в браузере в этой точке:

Twilio-IP-сообщений .min.js: 151 Соединение Twilsock закрыто сервером [] i._onSocketRejected @ twilio-ip-messaging.min.js: 151x.create.callbacks.onsocketRejected @ twilio-ip-messaging.min.js: 151e.doCallback @ twilio -ip-messaging.min.js: 235e.afterThisEvent @ twilio-ip-messaging.min.js: 235e.afterEvent @ twilio-ip-messaging.min.js: 235transition @ twilio-ip-messaging.min.js: 235 (анонимная функция) @ twilio-ip-messaging.min.js: 235r.onmessage @ twilio-ip-messaging.mi n.js: 151 cds.twilio.com/v2/Streams:1 POST https://cds.twilio.com/v2/Streams 403 (запрещено)

Twilio-IP-messaging.min.js: 150 IPMSG: Не удалось создать объект сеанса {статус: 403, описание: «Запрещено», тело: «{« сообщение »:« Доступ запрещен »,« статус »: 403}»} (анонимная функция) @ twilio-ip-messaging.min.js: 150s @ twilio-ip-messaging. min.js: 153 (анонимная функция) @ twilio-ip-messaging.min.js: 153c @ twilio-ip-messaging.min.js: 152Mutation (async) n @ twilio-ip-messaging.min.js: 152 (анонимная функция) @ twilio-ip-messaging.min.js: 152I @ twilio-ip-messaging.min.js: 153P @ twilio-ip-messaging.min.js: 153 (анонимная функция) @ twilio-ip-messaging. min.js: 152o.onreadystatechange @ twilio-ip-messaging.min.js: 151XMLHttpRequest.send (async) (анонимная функция) @ twilio-ip-messaging.min.js: 151w @ twilio-ip-messaging.min.js : 153o @ twilio-ip-messaging.min.js: 151l .post @ twilio-ip-messaging.min.js: 151f.post @ twilio-ip-messaging.min.js: 151i.post @ twilio-ip-messaging.min.js: 149i.createStream @ twilio-ip-messaging .min.js: 149i.initialize @ twilio-ip-messaging.min.js: 150i @ twilio-ip-messaging.min.js: 150 (анонимная функция) @ messagingController.js: 32 (анонимная функция) @ угловая. js: 15961n. $ eval @ angular.js: 17229n. $ digest @ angular.js: 17045n. $ apply @ angular.js: 17337l @ angular.js: 11572H @ angular.js: 11778u.onload @ angular.js: 11711XMLHttpRequest .send (async) (анонимная функция) @ angular.js: 11756m @ angular.js: 11517g @ angular.js: 11227 (анонимная функция) @ angular.js: 15961n. $ eval @ angular.js: 17229n. $ digest @ angular.js: 17045n. $ apply @ angular.js: 17337 (анонимная функция) @ angular.js: 25023n.event.dispatch @ jquery.min.js: 3r.handle @ jquery.min.js: 3 twilio-ip -messaging.min.js: 153 Отказ от необработанного обещания Объект {status: 403, description: "Forbidden", body: "{" message ":" Access f orbidden "," status ": 403}"} (анонимная функция) @ twilio-ip-messaging.min.js: 153R @ twilio-ip-messaging.min.js: 153 (анонимная функция) @ twilio-ip-messaging. min.js: 153t.exports @ twilio-ip-messaging.min.js: 152m. (анонимная функция) @ twilio-ip-messaging.min.js: 152_ @ twilio-ip-messaging.min.js: 152v @ twilio -ip-messaging.min.js: 152 twilio-ip-messaging.min.js: 153 Отказ от необработанного обещания Объект {статус: 403, описание: "Запрещено", тело: "{" сообщение ":" Доступ запрещен "," "status": 403} "} (анонимная функция) @ twilio-ip-messaging.min.js: 153R @ twilio-ip-messaging.min.js: 153 (анонимная функция) @ twilio-ip-messaging.min.js: 153t.exports @ twilio-ip-messaging.min.js: 152m. (анонимная функция) @ twilio-ip-messaging.min.js: 152_ @ twilio-ip-messaging.min.js: 152v @ twilio-ip-messaging.min.js: 152 twilio-ip-messaging.min.js: 153 Необработанное обещание (анонимная функция) @ twilio-ip-messaging.min.js: 153R (анонимная функция) @ twilio-ip-messaging.min.js: 153 (анонимная функция) @ twilio-ip-messaging.min.js: 153t.exports @ twilio-ip-messaging.min.js: 152m. (анонимная функция) @ twilio- ip-messaging.min.js: 152_ @ twilio-ip-messaging.min.js: 152v @ twilio-ip-messaging.min.js: 152 twilio-ip-messaging.min.js: 153 Отказ от необработанного обещания Объект { статус: 403, описание: «Запрещено», тело: «{« сообщение »:« Доступ запрещен »,« статус »: 403}»} (анонимная функция) @ twilio-ip-messaging.min.js: 153R @ twilio-ip-messaging.min.js: 153 (анонимная функция) @ twilio-ip-messaging.min.js: 153t.exports @ twilio-ip-messaging.min.js: 152m. (анонимная функция) @ twilio- ip-messaging.min.js: 152_ @ twilio-ip-messaging.min.js: 152v @ twilio-ip-messaging.min.js: 152 twilio-ip-messaging.min.js: 153 Отказ от необработанного обещания Объект { статус: 403, описание: «Запрещено», тело: «{« сообщение »:« Доступ запрещен »,« статус »: 403}»} (анонимная функция) @ twilio-ip-messaging.min.js: 153R @ twilio- ip-messaging.min.js: 153 (анонимная функция) @ twilio-ip-messaging.min.js: 153t.exports @ twilio-ip-messaging.min.js: 152m. (анонимная функция) @ twilio-ip-messaging .min.js: 152_ @ twilio-ip-messaging.min.js: 152v @ twilio-ip-messaging.min.js: 152 twilio-ip-messaging.min.js: 153 Отказ от необработанных обещаний Объект {status: 403 , описание: «Запрещено», тело: «{« сообщение »:« Доступ запрещен »,« статус »: 403}»} (анонимная функция) @ twilio-ip-messaging.min.js: 153R @ twilio -ip-messaging.min.js: 153 (анонимная функция) @ twilio-ip-messaging.min.js: 153t.exports @ twilio-ip-messaging.min.js: 152m. (анонимная функция) @ twilio-ip- messaging.min.js: 152_ @ twilio-ip-messaging.min.js: 152v @ twilio-ip-messaging.min.js: 152

ответ

0

Twilio разработчик евангелист здесь.

Глядя на ваши ошибки здесь:

Twilio-IP-messaging.min.js: 150 IPMSG: не удалось создать сеанс объекта {состояние: 403, описание: "Forbidden", тело: «{ "сообщение": "Доступ запрещен ", "статус": 403} "} (анонимная функция) @ Twilio-IP-messaging.min.js: 150s

Предлагает мне вы не в состоянии проверить подлинность , что означает, что сгенерированное тождество и токен неверны. Глядя на ваш код, который я увидел это:

var token = new AccessToken(
     "[MY PROD ACCOUNT SID]", 
     "[MY PROD ACCOUNT SID]", 
     "[Prod Auth Token]" 
    ); 

Теперь, если вы не просто использовали скопировать и вставить это неправильно, вы не должны использовать учетную запись SID дважды. Ваш токен доступа должен состоять из SID учетной записи, ключа API и секретности API. Больше как это:

var token = new AccessToken(
     "[MY PROD ACCOUNT SID]", 
     "[API KEY]", 
     "[API SECRET]" 
    ); 

Если вы не знаете о том, как получить эту информацию, хотя, есть взгляд на сбора информации счета раздел на JavaScript Quickstart.

Помимо этого, ваш код выглядит отлично, и я думаю, что ошибка исчезнет, ​​когда вы убедитесь, что используете правильные токены аутентификации.

Надеюсь, это вам поможет

Смежные вопросы