【问题标题】:Access to Google API without using a json file无需使用 json 文件即可访问 Google API
【发布时间】:2021-01-12 13:37:45
【问题描述】:

有没有办法避免使用 client_secret.json 文件并通过在项目设置文件中以编程方式声明它们来使用其中的变量? 我的意思是而不是使用

  KEY_FILE_LOCATION = '/home/user/ga/client_secrets.json'
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      KEY_FILE_LOCATION, SCOPES)

像这样 settings.py

CLIENT_CONFIG = {
    ....
    'client_id': settings.GOOGLE_CLIENT_ID,
    'project_id': settings.GOOGLE_PROJECT_ID,
    'private_key': settings.GOOGLE_CLIENT_SECRET,
    .....

    }

ma​​in.py

  from settings import CLIENT_CONFIG
    
  credentials = ServiceAccountCredentials.SOME_FUNCTION(
      CLIENT_CONFIG, SCOPES)

【问题讨论】:

标签: python google-api google-oauth google-api-python-client


【解决方案1】:

看起来可以使用函数from_json_keyfile_dict https://github.com/googleapis/oauth2client/blob/50d20532a748f18e53f7d24ccbe6647132c979a9/oauth2client/service_account.py#L226 将json文件的内容作为变量传入

data = {
...
json file content
....
}
credentials = ServiceAccountCredentials.from_json_keyfile_dict(
      data, SCOPES)

【讨论】:

    【解决方案2】:

    文件config.cfg

    [creds]
    client_id = GOOGLE_CLIENT_ID
    project_id = GOOGLE_PROJECT_ID
    

    main.py

    import configparser as cfg
    
    parser = cfg.ConfigParser()
    parser.read('path of config.cfg file')
    client_id = parser.get('creds','client_id ')
    project_id = parser.get('creds','project_id ')
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-02
      • 2016-09-27
      • 2013-08-06
      • 2017-04-04
      • 2018-07-21
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多