gpt4 book ai didi

javascript - 使用 Google App Script 对可汗学院 API 的 OAuth1 调用进行身份验证

转载 作者:行者123 更新时间:2023-11-30 16:27:06 32 4
gpt4 key购买 nike

我对编码还很陌生。我正在使用 Google App Script,它应该是基于 javascript 的,并且是一个用于管理 OAuth1 api 身份验证的库。我正在尝试通过可汗学院进行身份验证。我从谷歌应用网站获得的这个脚本在一定程度上起作用。 “listTweets”函数将我带到“else”分支并记录 url 以将我带到可汗学院以授予脚本进行调用的权限。我接受并应该重新运行该函数并最终进入“if-then-else”语句的“then”分支。我只是不断地被发送到其他地方。有谁知道什么给?在此先感谢您的帮助。

var CONSUMER_KEY = 'my key';
var CONSUMER_SECRET = 'my secret';
var PROJECT_KEY = 'my google project key';

function listTweets() {
var service = getTwitterService();
if (service.hasAccess()) {
var response = service.fetch('https://www.khanacademy.org//api/v1/user/exercises');
var tweets = JSON.parse(response.getContentText());
Logger.log(tweets);
} else {
var authorizationUrl = service.authorize();
Logger.log('Please visit the following URL and then re-run the script: ' + authorizationUrl);
}
}

function getTwitterService() {
var service = OAuth1.createService('twitter');
service.setAccessTokenUrl('https://www.khanacademy.org/api/auth2/access_token')
service.setRequestTokenUrl('https://www.khanacademy.org/api/auth2/request_token')
service.setAuthorizationUrl('https://www.khanacademy.org/api/auth2/authorize')
service.setConsumerKey(CONSUMER_KEY);
service.setConsumerSecret(CONSUMER_SECRET);
service.setProjectKey(PROJECT_KEY);
service.setCallbackFunction('authCallback');
service.setPropertyStore(PropertiesService.getScriptProperties());
service.setOAuthVersion('1.0');
return service;
}

function authCallback(request) {
var service = getTwitterService();
var isAuthorized = service.handleCallback(request);
if (isAuthorized) {
return HtmlService.createHtmlOutput('Success! You can close this page.');
} else {
return HtmlService.createHtmlOutput('Denied. You can close this page');
}
}

最佳答案

我不熟悉这个特定的 API,但通读了 their documentation ,并寻找 PHP example ,他们似乎希望在 URL 中传递 OAuth 参数,而不是在授权 header 中传递。

默认情况下,OAuth 服务使用授权 header ,但这可以用 service.setParamLocation('uri-query') 覆盖。

关于javascript - 使用 Google App Script 对可汗学院 API 的 OAuth1 调用进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943942/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com