我怎样才能最容易地在Jupyter笔记本中使用gspread进行身份验证?

时间:2017-11-14 17:53:19

标签: google-oauth jupyter-notebook gspread google-colaboratory

我工作的许多合作伙伴主要使用电子表格,而不是python,scala,java,SQL等。这些人都是非技术人员,但他们需要数据,我的工作就是把它掌握在手中。阅读谷歌的实验室,their example notebook on io,我发现了gspread和明显易于认证:

from google.colab import auth
auth.authenticate_user()

import gspread
from oauth2client.client import GoogleCredentials

gc = gspread.authorize(GoogleCredentials.get_application_default())

我们使用Jupyter的本地部署和几个自定义来简化对Presto,Hive,Spark等的访问,所以我尝试在我们的环境中安装colab无济于事(它不是开源的)。我发现的下一个最佳方法是using oauth2,但这似乎需要GCP帐户才能访问Google Developer's Console。对于可归结为使用远程服务进行身份验证的内容,这似乎过于复杂。

那么,小组记住,如何在jupyter笔记本中最容易用gspread进行身份验证?

1 个答案:

答案 0 :(得分:2)

我可以在Colab中解释使这项工作的成分:

  • authenticate_user的调用会调用gcloud auth login --enable-gdrive-accessother args)。
  • 然后,我们将GOOGLE_APPLICATION_CREDENTIALS环境变量设置为这些凭据的导出副本。
  • 使用Application Default Credentials的任何代码现在都可以发现这些凭据;特别是oauth2client找到它们(如上面的示例所示)。

与往常一样,您应该注意放置凭证的位置;在Colab的情况下,我们有一个相当受控制的系统,并且可以使用这种设置(尽管如此,它可能在将来发生变化)。