Мне нужен доступ к данным из учетной записи Google Analytics моей компании для панели мониторинга, которую мы используем для мониторинга нашей аудитории.Один из моих коллег, который отвечал за этот проект панели инструментов, был владельцем проекта Google, который создал учетные данные для доступа к API.Однако он ушел, и этот проект Google не выдержал удаления его учетной записи.
Поэтому я пытаюсь исправить это как можно скорее, создав еще один проект для получения новых учетных данных.Поскольку панель инструментов не требует данных пользователя, я подумал, что использование метода учетной записи службы было бы уместно.Я создал проект Google, включил API отчетов Google Analytics V4, создал учетную запись службы и загрузил связанный с ней закрытый ключ.Затем я использовал пример сценария, предоставленный Google в приведенной выше ссылке, чтобы убедиться, что каждый шаг был соблюден (я не установил клиентскую библиотеку, как это было сделано моим бывшим коллегой), но я получил эту ошибку:
Error: Command failed: cd scripts; python HelloAnalytics.py;
Traceback (most recent call last):
File "HelloAnalytics.py", line 96, in <module>
main()
File "HelloAnalytics.py", line 89, in main
key_file_location=key_file_location)
File "HelloAnalytics.py", line 21, in get_service
key_file_location, scopes=scopes)
File "/usr/local/lib/python2.7/dist-packages/oauth2client/service_account.py", line 223, in from_json_keyfile_name
revoke_uri=revoke_uri)
File "/usr/local/lib/python2.7/dist-packages/oauth2client/service_account.py", line 172, in _from_parsed_json_keyfile
'Expected', client.SERVICE_ACCOUNT)
ValueError: ('Unexpected credentials type', None, 'Expected', 'service_account')
at ChildProcess.exithandler (child_process.js:275:12)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
killed: false,
code: 1,
signal: null,
cmd: 'cd scripts; python HelloAnalytics.py;' }
Как видите, произошла ошибка с типом учетных данных, но я проверил свои учетные данные JSON и тип "service-account", несмотря на то, что говорит ошибка ... Знаете ли вы, что я могусделать, чтобы решить это?Похоже, я очень близок к успеху.К сожалению, я не могу связаться с моим бывшим коллегой.
РЕДАКТИРОВАТЬ:
В конце концов я отказался от идеи использования метода учетной записи службы, в качестве файловПроект ссылается на метод "установленных приложений" (можно найти по этому адресу ).Поэтому я создал на своем компьютере среду Python 2.7 / Anaconda, создал папку со сценарием Python и client_secrets.json, загрузил библиотеки и запустил сценарий.Он работал, когда мой интернет-браузер открылся и попросил меня разрешить доступ к моим данным Google Analytics.Затем файл analyticsreporting.dat с токенами можно найти в папке.
Затем я заменил содержимое client_secrets и analytics на только что созданный мною, надеясь, что этого будет достаточно, чтобы проект снова заработал.Это было сделано в тестовой версии, где вам не нужно проходить аутентификацию с вашей учетной записью Google (мы используем этот метод, чтобы ограничить доступ к нашим коллегам), но это привело к аварийному завершению живой версии с этой ошибкой:
400. Error: redirect_uri_mismatch
Вы знаете, как я могу решить эту ошибку?Я не упомянул какой-либо URI перенаправления, и я не знаю, где найти это на панели инструментов API Google.