Где хранить ваш client_secret.json на компьютере с Windows? - PullRequest
0 голосов
/ 19 ноября 2018

Я работаю с OAuth, для входа в учетную запись Gmail и отправки писем через скрипт python. Я скачал файл client_secret.json, файл хранится в C: \ Users \ anuj.masand \ (домашняя папка). При запуске скрипта Python я получаю следующую ошибку:

oauth2client.clientsecrets.InvalidClientSecretsError: ('Error opening file', 'client_secret.json', 'No such file or directory', 2)

Я вижу, что файл недоступен там, где это требуется сценарию. Я прочитал файл clientsecrets.py и узнал, что следующий код загружает файл.

def _loadfile(filename):
try:
    with open(filename, 'r') as fp:
        obj = json.load(fp)
except IOError as exc:
    raise InvalidClientSecretsError('Error opening file', exc.filename,
                                    exc.strerror, exc.errno)
return _validate_clientsecrets(obj)

Мой код прыгает прямо в исключительную часть. У меня вопрос, где хранить файл client_secret.json? так что переводчик может найти файл и двигаться вперед. Где Python действительно ищет этот файл?

Ссылка: Сценарий

1 Ответ

0 голосов
/ 20 ноября 2018

Согласно этому руководству по быстрому запуску , вы должны переместить загруженный файл в ваш рабочий каталог . В файле с именем credentials.json руководство реализовало чтение файла следующим образом:

# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('gmail', 'v1', http=creds.authorize(Http()))

Убедитесь, что имена файлов полностью совпадают.

...