本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何使用 JSON 字符串作为凭证而不是 Google API 的 Python 文件路径

发布于2021-10-15 00:15     阅读(890)     评论(0)     点赞(21)     收藏(5)



我正在寻找一种方法来构建Google Credentials对象并访问我的 Google 表格电子表格,而无需引用包含我的client_secret.json数据的另一个文件这感觉应该很容易做到,我只是希望能够将 JSON 复制到我的 python 脚本中并以这种方式访问​​它,但我一直无法找到一种方法来做到这一点。

根据https://oauth2client.readthedocs.io/en/latest/source/oauth2client.file.html似乎使用当前方法的唯一方法是使用文件路径,但如果文件字面上只包含 JSON,它似乎应该有一种方法可以将 JSON 放入我的 python 脚本中并从那里使用它。

下面列出的是我目前如何从我的 json 文件中获取值。

SCOPES = 'https://www.googleapis.com/auth/spreadsheets.readonly'
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('sheets', 'v4', http=creds.authorize(Http()))

SPREADSHEET_ID = ID
RANGE_NAME = sheetName + '!A2:D'
result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID,
                                             range=RANGE_NAME).execute()

解决方案


把我的代码改成这样:

SCOPES = 'https://www.googleapis.com/auth/spreadsheets'
store = file.Storage('credentials.json')

flow = client.OAuth2WebServerFlow(client_id='619103408544-qbpfk38g9jk4tkc5gshvds9hs8g5ur9o.apps.googleusercontent.com',
                                    client_secret='faJQr2Wd3x25_yKYIWslxR4s',
                                    scope=SCOPES)
creds = tools.run_flow(flow, store)
service = build('sheets', 'v4', http=creds.authorize(Http()))

使用不同的函数来创建流程,结果证明您实际上不需要使用商店来制作凭据,所以我只是删除了 store.get() 行。







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1059592/94d9a4df6a724ce671e7/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

21 0
收藏该文
已收藏

评论内容:(最多支持255个字符)