Я пытаюсь настроить Google Analytics на одном из сайтов моего блога. Я использую клиентскую библиотеку Google API. Код работает нормально, если я вручную получаю токен доступа с сайта:
https://developers.google.com/oauthplayground/. Мне трудно обновить access_token. Может ли кто-нибудь помочь мне в этом?
Фрагмент кода Python:
import httplib2
import httplib2 as lib2
import google.oauth2.credentials
# from google.auth.transport import requests
import requests
from google_auth_httplib2 import AuthorizedHttp
from oauth2client import client, GOOGLE_TOKEN_URI
from googleapiclient.discovery import build as google_build
# This is consistent for all Google services
token_uri = 'https://accounts.google.com/o/oauth2/token'
# WORKING CODE BUT REQUIRES VALID ACCESS_TOKEN
credentials = google.oauth2.credentials.Credentials(None,
refresh_token=refresh_token,
token_uri='https://accounts.google.com/o/oauth2/token',
client_id=client_id,
client_secret=client_secret)
credentials = google.oauth2.credentials.Credentials(access_token)
authorized = AuthorizedHttp(credentials=credentials)
print(access_token)
# API Name and Verison, these don't change until
# they release a new API version for us to play with.
api_name = 'analyticsreporting'
api_version = 'v4'
# Let's build the client
api_client = google_build(serviceName=api_name, version=api_version, http=authorized)
sample_request = {
'viewId': 'xxxxxxxx',
'dateRanges': {
'startDate': datetime.strftime(datetime.now() - timedelta(days=120), '%Y-%m-%d'),
'endDate': datetime.strftime(datetime.now(), '%Y-%m-%d')
},
'dimensions': [{'name': 'ga:date'}],
'metrics': [{'expression': 'ga:sessions'}]
}
response = api_client.reports().batchGet(
body={
'reportRequests': sample_request
}).execute()
print(response)
Я сохранил ACCESS_TOKEN как none для получения исходного токена доступа, который, похоже, работает, когда я его распечатываю, но я не смог обновить этот access_token с помощью этого API учетных данных, поскольку у него также нет атрибутов expires_at или expiry. Область URL-адреса будет «https://www.googleapis.com/auth/analytics.readonly».
При запуске приведенного выше кода для обновления ТОКЕНА ДОСТУПА я делаю ошибку:
Traceback (most recent call last):
File "E:/PyCharm_Workspace/MLPractices/GA3.py", line 78, in
'reportRequests': sample_request
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\googleapiclient\_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\googleapiclient\http.py", line 901, in execute
headers=self.headers,
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\googleapiclient\http.py", line 177, in _retry_request
resp, content = http.request(uri, method, *args, **kwargs)
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\google_auth_httplib2.py", line 213, in request
self.credentials.refresh(self._request)
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\google\oauth2\credentials.py", line 172, in refresh
"The credentials do not contain the necessary fields need to "
google.auth.exceptions.RefreshError: The credentials do not contain the necessary fields need to refresh the access token. You must specify refresh_token, token_uri, client_id, and client_secret.
Подробнее здесь: https://stackoverflow.com/questions/620 ... cess-token
Google API Python, как получить/обновить токен доступа ⇐ Python
Программы на Python
-
Anonymous
1772121870
Anonymous
Я пытаюсь настроить Google Analytics на одном из сайтов моего блога. Я использую клиентскую библиотеку Google API. Код работает нормально, если я вручную получаю токен доступа с сайта:
https://developers.google.com/oauthplayground/. Мне трудно обновить access_token. Может ли кто-нибудь помочь мне в этом?
Фрагмент кода Python:
import httplib2
import httplib2 as lib2
import google.oauth2.credentials
# from google.auth.transport import requests
import requests
from google_auth_httplib2 import AuthorizedHttp
from oauth2client import client, GOOGLE_TOKEN_URI
from googleapiclient.discovery import build as google_build
# This is consistent for all Google services
token_uri = 'https://accounts.google.com/o/oauth2/token'
# WORKING CODE BUT REQUIRES VALID ACCESS_TOKEN
credentials = google.oauth2.credentials.Credentials(None,
refresh_token=refresh_token,
token_uri='https://accounts.google.com/o/oauth2/token',
client_id=client_id,
client_secret=client_secret)
credentials = google.oauth2.credentials.Credentials(access_token)
authorized = AuthorizedHttp(credentials=credentials)
print(access_token)
# API Name and Verison, these don't change until
# they release a new API version for us to play with.
api_name = 'analyticsreporting'
api_version = 'v4'
# Let's build the client
api_client = google_build(serviceName=api_name, version=api_version, http=authorized)
sample_request = {
'viewId': 'xxxxxxxx',
'dateRanges': {
'startDate': datetime.strftime(datetime.now() - timedelta(days=120), '%Y-%m-%d'),
'endDate': datetime.strftime(datetime.now(), '%Y-%m-%d')
},
'dimensions': [{'name': 'ga:date'}],
'metrics': [{'expression': 'ga:sessions'}]
}
response = api_client.reports().batchGet(
body={
'reportRequests': sample_request
}).execute()
print(response)
Я сохранил ACCESS_TOKEN как none для получения исходного токена доступа, который, похоже, работает, когда я его распечатываю, но я не смог обновить этот access_token с помощью этого API учетных данных, поскольку у него также нет атрибутов expires_at или expiry. Область URL-адреса будет «https://www.googleapis.com/auth/analytics.readonly».
При запуске приведенного выше кода для обновления ТОКЕНА ДОСТУПА я делаю ошибку:
Traceback (most recent call last):
File "E:/PyCharm_Workspace/MLPractices/GA3.py", line 78, in
'reportRequests': sample_request
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\googleapiclient\_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\googleapiclient\http.py", line 901, in execute
headers=self.headers,
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\googleapiclient\http.py", line 177, in _retry_request
resp, content = http.request(uri, method, *args, **kwargs)
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\google_auth_httplib2.py", line 213, in request
self.credentials.refresh(self._request)
File "E:\PyCharm_Workspace\MLPractices\venv\lib\site-packages\google\oauth2\credentials.py", line 172, in refresh
"The credentials do not contain the necessary fields need to "
google.auth.exceptions.RefreshError: The credentials do not contain the necessary fields need to refresh the access token. You must specify refresh_token, token_uri, client_id, and client_secret.
Подробнее здесь: [url]https://stackoverflow.com/questions/62018034/googleapi-python-how-to-fetch-refresh-access-token[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия