python - 将 gspread 与 OAuth2 SignedJwtAssertionCredentials 结合使用

标签 python python-2.7 oauth-2.0 google-oauth gspread

我正在尝试使用 gspread Python 库使用 oauth2 访问我的 google 电子表格。我是 Oauth2 的新手并了解它的好处。但我无法使用它。到目前为止我已经访问了 https://code.google.com/apis/console/并生成 CLIENT ID、SECRET 和 REDIRECT URI。

credentials = SignedJwtAssertionCredentials('developer@example.com', SIGNED_KEY, scope)

根据 Gspread Docs我需要一个 SIGNED_KEY 对象。我如何获得它?

一个例子会很有帮助。

最佳答案

在开发人员控制台中,( https://console.developers.google.com ) 转到 APIs & auth > Credentials 并单击创建新的客户端 ID,然后选择服务帐户。您的浏览器应下载一个 .p12 文件。现在通过在命令行中执行此操作将其转换为 GAE 的 PEM:

openssl pkcs12 -passin pass:notasecret -in privatekey.p12 -nocerts -passout pass:notasecret -out key.pem
openssl pkcs8 -nocrypt -in key.pem -passin pass:notasecret -topk8 -out privatekey.pem

然后您必须将 PEM 移动到您的应用程序目录,在您的应用程序代码中打开它,然后将其用作 SignedJwtAssertionCredentials 中的第二个参数

还要确保 app.yaml 库部分包含 pycrypto

libraries:
- name: pycrypto
  version: "2.6"

我从某人那里得到了这个非常有帮助的 tutorial

关于python - 将 gspread 与 OAuth2 SignedJwtAssertionCredentials 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27011486/

相关文章:

python - Unicode解码错误: 'ascii' codec can't decode byte 0xc3 in position 1286: ordinal not in range(128)

python - 根据pyqtgraph.opengl中的信号值调整曲面图项的颜色

python - 如何比较 Pandas 中的列并使用是或否创建新列

facebook - Heroku + Facebook + NodeJS : cannot find module 'OAuth'

python - 在 docker 容器之间共享 gensim 的 KeyedVectors 对象的内存

python - 你能解释一下下面的功能吗?

python - 获取特定 Outlook 文件夹/收件箱中的类别列表

python-2.7 - 在scikit中使用Train Test Split时获取索引

oauth - 如何获取 Slack API 的用户 token ?

python - 非交互式访问谷歌云存储