csMgmtApp.controller('launchedController', ['$scope', '$http', '$document', '$resource', function ($scope, $http, $document, $resource) {
$scope.clientResult = {};
$scope.data = {};
$document.ready(function () {
var query_string = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0; i < vars.length; i++) {
var pair = vars[i].split("=");
query_string[pair[0]] = pair[1];
}
if (typeof(query_string.access_token) != "undefined") {
var result = {};
result.state = query_string.state;
result.scope = query_string.scope;
result.access_token = query_string.access_token;
result.expires_in = query_string.expires_in;
result.resource_server_base_uri = query_string.resource_server_base_uri;
result.token_type = query_string.token_type;
}
$scope.clientResult = result;
});
console.log($scope.clientResult);
$scope.startSessionPayload = {
'stationPhoneNumber': '5555555555',
'inactivityTimeout': '0',
'inactivityForceLogout': 'false'
};
$http({
'url': $scope.clientResult.resource_server_base_uri + 'services/v6.0/agent-sessions',
'method': 'POST',
'headers':{'Authorization': 'bearer ' + $scope.clientResult.access_token,'content-Type': 'application/json'},
'data': JSON.stringify($scope.startSessionPayload)
}).success(function(data, status, headers, config) {
$scope.data = data;
console.log('data', $scope.data)
}).error(function(data, status, headers, config) {
$scope.status = status;
});
}]);
当我尝试te $ http“POST”时,上面的代码给了我404。
当我在console.log($ scope.clientResult.resource_server_base_uri)时,我得到:“https%3a%2f%2fapi-c7.incontact.com%2finContactAPI%2f”。
但是,我得到了404,当我查看开发人员工具时,我发现它正试图发布到:"http://localhost:63342/Call_cntr/client/https%3a%2f%2fapi-c7.incontact.com%2finContactAPI%2fservices/v6.0/agent-sessions"
我开始认为它失败了,因为“:// localhost ...”被“预先”添加到base_uri ...不确定为什么会发生这种情况。我觉得我提供了inContact API文档中提到的所有内容。也许这是我从AJAX到$ http的角度转换?
任何帮助,非常感谢,我被卡住了..
获得API身份验证令牌后,您可以使用此令牌为其用于获取令牌的凭据创建代理会话。这是通过请求https://api- {cluster} .incontact.com / inContactAPI / services / v6.0 / agent-sessions方法,并提供“电台ID”或电话号码来完成的。剂。
根据文档:https://developer.incontact.com/API/AgentAPI#!/Sessions/startSession
答案 0 :(得分:0)
尝试
result.resource_server_base_uri = unescape(query_string.resource_server_base_uri);
我认为/
实际上是一个分隔符,但%2f
成为一个普通字符,只代表您网址中的/
个字符。
unescape()
已被弃用;试试decodeURIComponent()