希望你能帮上忙。
这个脚本在本地适用于,但是当我将它放到服务器上时--使用python3 xxx.py运行它,然后转到Auth,它重定向到localhost,因为它在服务器上,所以失败了。
有人知道为什么吗?
甚至还有一个连接到Google的Python示例。我做了很多研究&我无法得到我所见过的例子。
import pandas as pd
import requests
from google_auth_oauthlib.flow import InstalledAppFlow
SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
flow = InstalledAppFlow.from_client_secrets_file('./client_secret.json', SCOPES)
creds = flow.run_local_server(port=0)
发布于 2020-06-23 02:09:54
它无法工作,因为您遵循了使用已安装的应用程序进行身份验证的示例。
InstalledAppFlow
将打开其运行的机器上的授权web浏览器窗口。如果您打算在网站上托管此文件以允许用户访问其google分析数据,则需要使用web浏览器凭据和使用web浏览器进行身份验证的代码。
Oauth2 web应用程序
我所能找到的唯一示例是YouTube api,您需要为Google anltyics修改它。
@app.route('/authorize')
def authorize():
# Create a flow instance to manage the OAuth 2.0 Authorization Grant Flow
# steps.
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
CLIENT_SECRETS_FILE, scopes=SCOPES)
flow.redirect_uri = flask.url_for('oauth2callback', _external=True)
authorization_url, state = flow.authorization_url(
# This parameter enables offline access which gives your application
# both an access and refresh token.
access_type='offline',
# This parameter enables incremental auth.
include_granted_scopes='true')
# Store the state in the session so that the callback can verify that
# the authorization server response.
flask.session['state'] = state
return flask.redirect(authorization_url)
完整的示例可以找到这里
服务帐户。
如果您只访问自己的数据,而不是其他人拥有的数据,那么您应该考虑使用服务帐户。v4;用于服务帐户的
这是用
credentials = ServiceAccountCredentials.from_json_keyfile_name(
KEY_FILE_LOCATION, SCOPES)
https://stackoverflow.com/questions/62531817
复制相似问题