【发布时间】:2016-09-16 15:28:47
【问题描述】:
我正在尝试与 Twilio 的 IP 消息传递服务集成,并尝试在此处遵循他们的指南:https://www.twilio.com/docs/api/ip-messaging/guides/identity
我正在使用 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-messaging.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.min.js:151 cds.twilio.com/v2/Streams:1 POST https://cds.twilio.com/v2/Streams 403(禁止)
twilio-ip-messaging.min.js:150 IPMSG: 未能创建会话对象 {status: 403, description: "Forbidden", body: "{"message":"Access denied","status":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(异步) (匿名函数)@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(匿名函数)@ messingController.js:32(匿名函数)@ angular.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 未处理的承诺拒绝对象{状态: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 未处理的承诺拒绝对象{状态: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 未处理的承诺拒绝对象{状态: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
【问题讨论】: