使用$http.get从API(zendesk)检索不起作用
Using $http.get to retrieve from API(zendesk) not working
我正在尝试对Zendesk的API进行API调用,并且我一直得到401验证代码,即使当我在终端中执行cURL时,同样的事情也有效。如何在Angular中完成此工作?
function dataservice($http) {
var service = {
getMacros: getMacros
};
return service;
/////////////////////
function getMacros() {
var client = {
username: window.btoa('myEmail'),
token: window.btoa('/token:myToken'),
remoteUri: 'https://myCompany.zendesk.com/api/v2/macros.json'
};
console.log('Loading...');
return $http({
method: 'GET',
url: client.remoteUri,
headers: {
'Authorization': client.username + client.token
}
})
.then(getMacrosComplete)
.catch(function (message) {
exception.catcher('Failed to getMacros')(message);
});
function getMacrosComplete(response) {
console.log('Done');
var data = response.data;
return data;
};
};
上面的代码总是返回401,而这是有效的:
curl myEmail/token:myToken https://myCompany.zendesk.com/api/v2/macros.json
看起来效果不错。可能是显而易见的。
问题是您需要正确设置Authorization标头,它们应该是Base64编码的,并且您必须声明"基本"身份验证(这是大多数人错过的主要部分)。
所以这应该有效:
function dataservice($http) {
var service = {
getMacros: getMacros
};
return service;
/////////////////////
function getMacros() {
var client = {
username: 'myEmail',
token: 'myToken',
remoteUri: 'https://myCompany.zendesk.com/api/v2/macros.json'
};
console.log('Loading...');
return $http({
method: 'GET',
url: client.remoteUri,
headers: {
'Authorization': 'Basic ' + window.btoa(client.username + '/token:' + client.token)
}
})
.then(getMacrosComplete)
.catch(function (message) {
exception.catcher('Failed to getMacros')(message);
});
function getMacrosComplete(response) {
console.log('Done');
var data = response.data;
return data;
};
};
当然,您必须在Zendesk帐户中启用令牌身份验证,否则您可以通过用户+密码进行身份验证,方法是设置密码并执行以下操作:
'Authorization': 'Basic ' + window.btoa(client.username + ':' + client.password)
相关文章:
- 使用JSP从服务器检索和显示图像
- 通过Magento的网络服务检索运费
- 如何通过php页面将数据库值检索到jquery自动完成框中
- 无法使用javascript检索SPList项
- 可以't使用Angular解析/检索JSON
- GoogleFeed正在检索图像
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 使用Scala Play Framework视图中的键检索映射值
- 从数据库中检索字段,而不模拟它们
- 如何在corona sdk中从CK编辑器中检索数据
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 在Node.js中上传和检索图像
- XML2JSON并检索数据
- 如何从php返回的JSON中检索值
- 如何在.js函数中检索来自其他模板的表单的目标值
- 使用ASP.NET将谷歌地图添加到项目中,并从数据库中检索位置
- 使用javascript进行JSON数据检索
- 检索MongoDB binData并显示为<img>src
- 为什么可以't我将检索到的文档分配给控制台中的变量
- 使用$http.get从API(zendesk)检索不起作用