来自Colab的Google API问题



我在Colab笔记本电脑上进行Google API People调用时遇到了困难。我试过两种不同的方法。colab笔记本与凭证文件一起在这里(这是一个新帐户,不包含任何敏感信息或范围)

如果我尝试通过OAuth 2.0客户端id访问它,我授权一个来自协作的重定向URI。我被要求通过谷歌账户登录,但一旦我通过谷歌账户登录,它就会打开一个新标签,指向一个不存在的网站。权限进程未完成。

第二次尝试:如果我尝试通过服务帐户凭据授权它,我得到这个错误:

ValueError: Client secrets must be for a web or installed app.

我在网上看了其他的答案,但他们似乎不工作。我使用的代码直接来自谷歌的快速入门指南。任何帮助都是感激的。所有代码和凭证都可以在Colab

中获得。

如果你看一下代码,它是为安装的应用程序设计的,这就是为什么你在使用服务帐户时出现错误。

flow = InstalledAppFlow.from_client_secrets_file(
'/content/peopleapipublic-fc597768cf57.json', SCOPES)

对于"Google帐户,它打开一个新的选项卡到一个不存在的网站">问题。这个问题是由于更改了桌面应用程序的OOB环回IP地址,在文档

中声明

要使用此URL接收授权码,您的应用程序必须在本地web服务器上侦听。

不幸的是,这个改变是在谷歌有时间更新他们所有的样本之前做出的,并且每个人都告诉我们他们希望我们如何创建这个本地web服务器来使用已安装的应用程序。

授权码仍然可以在URL栏中找到,如果这有帮助的话,但是我看不到你的代码提示你提供代码。

我会在google api python客户端上发布一个问题,并要求他们提供一个更新的示例,该示例展示了如何使用已安装的应用程序代码创建本地web服务器。没关系,我刚做了#1813

总的来说,这个问题与colab无关,与Google oauth和安装的应用程序有关。

最新更新