我尝试制作一个独立的Google Apps脚本,通过OAuth2库访问API,可在此处找到:https://github.com/googlesamples/apps-script-oauth2
到目前为止,我还没有能够获得任何示例,但我认为这是因为我无法注册我的应用程序并设置OAuth重定向URI。这是我第一次尝试使用OAuth。
以下是我采取的步骤:
我收到此链接显示的错误(读取"您无权执行此操作。
根据我所研究的内容,我需要输入此URI才能使此脚本正常工作。为什么不能保存?
答案 0 :(得分:2)
以下是您可以尝试的一些事项。
第一步
网络应用api
从使用appscript API更改为使用网络应用API。您可以在API管理控制台中创建一个新的。
然后选择Web应用程序选项。
最后,您将拥有一个新的API。
打开新API并获取客户端ID和密码。
从您的应用中粘贴到api重定向。
https://script.google.com/macros/d/{SCRIPT ID}/usercallback
第二步
身份验证和重定向
接下来的一点很棘手,可能需要一些摆弄。
下面代码的第一部分生成一个URL。然后需要指示用户在新窗口中打开生成的URL。新窗口将显示所有常用的谷歌权限,包括任何范围。当用户接受时,他们将被重定向回您的应用。
function getAuthURL() {
var driveService = getDriveService();
if (!driveService.hasAccess()) {
var authorizationUrl = driveService.getAuthorizationUrl();
Logger.log(authorizationUrl)
}
function authCallback(request) {
var driveService = getDriveService();
var isAuthorized = driveService.handleCallback(request);
if (isAuthorized) {
return HtmlService.createHtmlOutput('Success! You can close this tab.');
} else {
return HtmlService.createHtmlOutput('Denied. You can close this tab');
}
}
第三步
访问令牌
现在,用户已授予权限,可以获取访问令牌并将其传递给提取请求。
function makeRequest() {
var driveService = getDriveService();
var response = UrlFetchApp.fetch('https://www.googleapis.com/drive/v2/files?maxResults=10', {
headers: {
Authorization: 'Bearer ' + driveService.getAccessToken()
}
});
// ...
}