我几个月来一直在努力学习Auth,归结为我不知道从哪里开始,似乎有很多不同的方法。
我正在使用提供称为“个人访问令牌”的令牌的API。 这是否意味着它是持票人或网络令牌?我迷失了这个术语。
它们允许您在其在线工具中使用其API。我正在发出POST请求。
api提供此信息:
发送帖子请求的链接:www.hackerrank.com/restoflink
请求标题:
{
"Content-Type": "application/json",
"Accept": "application/json",
"Content-Length": 190
}
请求正文:
{
"username": "testing",
"subject": "test",
"message": "test",
"send_email": "true",
"force": "false",
"hide_login_credentials": "true",
"access_token": "Access Token Number"
}
这是我的代码:
function onFormSubmission(e){
var accessToken ="ACCESS_TOKEN";
var options = {
method: "post",
headers: {
"Accept": "application/json",
"Authorization": "Bearer " + accessToken
},
payload: {
"username": "testing@gmail.com",
"subject": "test",
"message": "test",
"send_email": "true",
"force": "false",
"hide_login_credentials": "true",
"access_token": "ACCESS TOKEN",
"muteHttpExceptions": "false",
"contentType": "application/json"
}
}
var response = UrlFetchApp.fetch("linkhere", options);
Logger.log(response.getResponseCode())
Logger.log(response.getContentText());
}
当我在标题中没有持票人令牌的情况下运行此代码时,我收到“404截断的服务器错误”,“无效的访问令牌”“。
这就是我在标题中包含令牌的原因(“我猜它是一个承载令牌”
我从请求中获得的响应是200但它没有执行我期望的操作。
我对我必须做出的调整感到困惑,即使我得到了200个响应代码,但是我的应用程序脚本请求无效。
我尝试从POSTMAN和api的测试工具发出请求并且我的所有尝试都有效,这让我相信我在脚本中做错了。
非常感谢任何帮助,this post already helped out a lot!
答案 0 :(得分:0)
他们称其为文档中的永久性OAuth令牌(与您的评论相关联),但他们使用它的方式非常简单,而不像我过去使用的OAuth实现。
您不需要在标头中加入访问令牌,只需将& access_token = [您的令牌]附加到您请求的网址("linkhere"
)。
示例:
UrlFetchApp.fetch("www.hackerrank.com/x/api/v2/tests?duration=-1&access_token=123", options)