Javascript 使用AJAX的asanaapi集成
我正在使用Asana API,在进行API调用以获取新的刷新令牌时遇到问题,请让我知道我错在哪里 我正在通过Javascript-AJAX进行API调用 POST参数Javascript 使用AJAX的asanaapi集成,javascript,ajax,asana,Javascript,Ajax,Asana,我正在使用Asana API,在进行API调用以获取新的刷新令牌时遇到问题,请让我知道我错在哪里 我正在通过Javascript-AJAX进行API调用 POST参数 { "grant_type":"refresh_token", "client_id":"", "client_secret":"", "redirect_uri":"", "refresh_token":"" } 这是我正在使用的代码: $.ajax({ url : app.a
{
"grant_type":"refresh_token",
"client_id":"",
"client_secret":"",
"redirect_uri":"",
"refresh_token":""
}
这是我正在使用的代码:
$.ajax({
url : app.asana.com/-/oauth_token,
dataType : 'jsonp',
method: 'POST',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Bearer " + accessToken);
},
success : function(result) {},
error: function(jqXHR, textStatus, errorThrown){}
});
我收到的返回错误是:
{
"error": "unsupported_grant_type",
"error_uri": "asana.com/developers/documentation/getting-started/…;,
"error_description": "The supported grant types are authorization_code and refresh_token."
}
关于OAuth安全客户端的注意事项:
请记住,AJAX调用是在客户机上进行的,并且您正在进行的调用需要您的客户机_secret,您应该将其视为个人密码。从客户端拨打此电话会将此信息泄露给您的用户,并可能导致安全漏洞
如果您希望严格地在客户端(如JavaScript)实现Asana的OAuth,我建议您使用隐式授权类型。这里的缺点是,您不会获得刷新令牌,而是需要在访问令牌过期时重新授权您的客户端
关于这个问题:
当使用刷新令牌调用以获取新的访问令牌时,您需要发出如下请求:
//Request
POST https://app.asana.com/-/oauth_token
//POST Parameters
//Must be either form-data or x-www-form-urlencoded
client_id=<client_id>
client_secret=<client_secret>
grant_type="refresh_token"
refresh_token=<refresh_token>
请注意,参数必须是表单数据或x-www-form-urlencoded
官方Asana节点库
我还建议使用官方代码来实现这些功能。您应该发布正在使用的代码和收到的错误。这是我正在使用的代码-->$.ajax{url:app.asana.com//oauth_-token,数据类型:“jsonp”,方法:“post”,beforeSend:function xhr{xhr.setRequestHeaderAuthorization,Bearer+accessToken;},成功:functionresult{},错误:functionjqXHR,textStatus,errorSprown{};错误为{error:unsupported_grant_type,error_uri:,error_description:支持的授予类型为授权码和刷新_令牌。}你是如何设置post参数的?看起来你没有发送这些参数。我查看了文档并下载了NodeJS Asana库,其中显示Asana.js未找到。是否有任何文档或链接可以让我在不遗漏任何一个步骤的情况下找到全部信息。你不是没有正确地从web服务器提供文件,就是没有我更新了自述文件,将其直接从GitHub版本中获取。如果上面的答案解决了所提出的问题,请将其标记为准确。