Google apps script 谷歌应用脚本重定向uri错误
我正在尝试制作一个独立的Google Apps脚本,以通过OAuth2库访问API,可在以下位置找到: 到目前为止,我还无法让任何示例正常工作,但我认为这是因为我无法注册我的应用程序并设置OAuth重定向URI。这是我第一次尝试使用OAuth 以下是我采取的步骤:Google apps script 谷歌应用脚本重定向uri错误,google-apps-script,oauth,oauth-2.0,Google Apps Script,Oauth,Oauth 2.0,我正在尝试制作一个独立的Google Apps脚本,以通过OAuth2库访问API,可在以下位置找到: 到目前为止,我还无法让任何示例正常工作,但我认为这是因为我无法注册我的应用程序并设置OAuth重定向URI。这是我第一次尝试使用OAuth 以下是我采取的步骤: 创建新的独立Google应用程序脚本 粘贴到Dropbox.gs的内容中(对于本例) 将OAuth2库添加到我的脚本中 (参考资料>库,并粘贴到操作指南中列出的ID中) 转到控制台(参考资料>云平台项目)并导航到 API和服务>凭据页
根据我的研究,我需要输入此URI才能使脚本正常工作。为什么不保存此URI?以下是一些您可以尝试的方法 第一步 web应用程序api 从使用appscript API更改为使用web app API。您可以在API管理控制台中创建一个新的API 然后选择web应用程序选项 最后,您将拥有一个新的API 打开新的API并获取客户端ID和机密 将应用程序的重定向粘贴到api中
https://script.google.com/macros/d/{SCRIPT ID}/usercallback
第二步
身份验证和重定向
下一步很棘手,可能需要一些修改
下面代码的第一部分生成一个URL。然后需要指示用户在新窗口中打开生成的URL。新窗口将显示所有常用的google权限,包括任何范围。当用户接受后,这些权限将重定向回您的应用程序
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()
}
});
// ...
}
我还应该指出,如果我尝试在未输入重定向URI的情况下运行这些示例,则在尝试运行授权URL时会出现“无效客户端ID”问题。您是否在google应用程序域上?如果您在浏览器中登录到多个google帐户,则控制台可能不会“知道”"正在使用哪个帐户。注销所有帐户,只登录你想用于此web应用程序的帐户。另外,请参阅web应用程序Jason上的以下帖子,这只是一个普通的gmail帐户。Sandy,我只是以一个用户的身份登录,但我尝试了隐姓埋名。你给出的说明基本上就是我尝试的。嗨,Jason-谢谢!我不知道bug是否已修复,或者你的技巧是否奏效,但创建新凭据实际上允许我输入重定向URI。这就是进展!当我导航到授权URL时,我仍然运气不佳:“您使用的应用程序似乎提交了一个错误的请求。如果您想向应用程序的开发人员报告此错误,请包含以下信息。”我会继续尝试。我又花了几个小时来处理此问题。我已经从应用程序脚本API(没有重定向URI)中来回使用客户端ID(和机密),以及来自新的web应用程序API(它确实具有重定向URI)的。当我从任何一个安装程序访问授权URL时,都会发生同样的事情。唯一的区别是错误消息中的客户端ID。嗨,还有其他原因。谷歌不喜欢任何人使用这个库。从我的角度来看,我发现他们在大约10分钟内撤销了我使用的任何令牌。这只发生在我的私人帐户上ate帐户。当我在我们的域上运行相同的代码时,它运行正常。