【发布时间】:2020-11-16 18:05:25
【问题描述】:
我已经搜索了几个小时来寻找答案,所以请耐心等待!
我正在使用 Apps 脚本连接到 Google Drive API。我在控制台中创建了一个服务帐户,并收集了相关凭据。我有以下代码:
function test()
{
function getOAuthService(user) {
var JSON = {
"private_key": "-----BEGIN PRIVATE KEY-----\nMY KEY HERE\n",
"client_email": "clientemail@clientemail.iam.gserviceaccount.com",
"client_id": "11111111111111",
"user_email": "myemail@myemail.com"
};
return OAuth2.createService("Service Account")
.setTokenUrl('https://accounts.google.com/o/oauth2/token')
.setPrivateKey(JSON.private_key)
.setIssuer(JSON.client_email)
.setSubject(JSON.user_email)
.setPropertyStore(PropertiesService.getScriptProperties())
.setParam('access_type', 'offline')
.setScope('https://www.googleapis.com/auth/drive');
}
function getUserFiles() {
var service = getOAuthService();
service.reset();
var url = 'https://www.googleapis.com/drive/v2/files?pageSize=1';
var response = UrlFetchApp.fetch(url, {
headers: {
Authorization: 'Bearer ' + service.getAccessToken()
}, muteHttpExceptions: true
});
Logger.log(response.getContentText());
}
function reset() {
var service = getOAuthService();
service.reset();
}
getUserFiles()
}
我还在脚本中添加了 OAuth2 库。
每次我运行它时都会遇到以下错误:错误:访问未授予或过期。 (第 454 行,文件“服务”)
有人有什么想法吗?
谢谢!
【问题讨论】:
-
你有“454行”吗?
-
我认为操作指的是这一行
var response = UrlFetchApp.fetch(url, { headers: {Authorization: 'Bearer ' + service.getAccessToken()}, muteHttpExceptions: true }); -
我没有第 454 行,我假设这是 API 的一部分。有什么建议吗?
标签: google-apps-script google-api google-oauth google-apps-script-api