Google apps script 如何使用oauth 2.0从appscript授权到Google API?

Google apps script 如何使用oauth 2.0从appscript授权到Google API?,google-apps-script,oauth-2.0,Google Apps Script,Oauth 2.0,我正在使用AppScript并尝试获取oAuth 2.0访问令牌 有没有关于如何在AppScript中工作的示例?我正在编写一个更简洁的教程版本,但这里有一个简单的要点,可以为您提供一些关于如何工作的示例代码- 它仍然缺乏注销、错误处理和刷新令牌功能,但至少您应该能够登录并调用受oAuth 2保护的Google API(在本例中,它是一个配置文件API) 你可以在这里看到它的作用- 关键是使用oAuth 2 Web服务器流。查看gist中的getAndStoreAccessToken函数,以

我正在使用AppScript并尝试获取oAuth 2.0访问令牌


有没有关于如何在AppScript中工作的示例?

我正在编写一个更简洁的教程版本,但这里有一个简单的要点,可以为您提供一些关于如何工作的示例代码-

它仍然缺乏注销、错误处理和刷新令牌功能,但至少您应该能够登录并调用受oAuth 2保护的Google API(在本例中,它是一个配置文件API)

你可以在这里看到它的作用-

关键是使用oAuth 2 Web服务器流。查看gist中的
getAndStoreAccessToken
函数,以获取关键细节

我希望在接下来的几周内发表这篇文章,但同时希望这会有所帮助

更新-添加有关重定向的信息\u uri

客户端机密与授权代码返回到的特定重定向URI相关联

您需要将其设置为-

突出显示的URI需要与发布的URI匹配(以/exec结尾)。您可以从脚本编辑器的Publish->deployaswebapp下获取发布的URI。确保在进行更改时保存新版本并发布新版本(发布的URI保持不变)


请注意,您可以使用此新API构建OAuth2流,但它还不是一个完整的示例:


特别是,您不应该自己直接将“state”传递给/usercallback URL,因为OAuth2服务提供者负责往返“state”参数。(相反,您将“state”传递给auth URL,服务提供商会自动将其附加到回调URL。)

我修改了上面的示例,以使用新的state令牌API和CacheService,而不是UserProperties,后者现在已被弃用。使用状态令牌API似乎使事情更加安全,因为回调url将在超时后停止接受状态令牌

同样的警告也适用。您的重定向URI必须添加到开发人员控制台中的(脚本)项目中,同时您必须从控制台中提取客户机密钥和客户机ID并粘贴它们。如果您在域中工作,似乎无法保证ScriptApp.getService().getUrl()将返回什么URL,因此我基本上让它动态获取地址,然后等待(第二次)重定向失败,然后硬编码生成的URI


你好,阿伦,我已经测试了你的样品,看起来不错。但是我得到了一个错误无效的重定向uri。有什么提示吗?我在上面更新了我的答案,添加了确保重定向uri与密钥匹配的信息。希望有帮助。嗨,阿伦,这是一个伟大的样本Tranks。我让它工作起来了,我想我可以从那里搬走。@ArunNagarajan只是想知道我们是否会看到这个问题得到解决我正在复制粘贴你的要点,但我得到了
401。那是个错误。错误:当我按“单击此处开始”时,客户端没有应用程序名称
无效。使用链接是有效的。有什么想法吗?