Google Analyticsから昨日のデータを引き出すPythonスクリプトを作成しました。私はGoogle Reporting API v4でOAuth v2を使用しています。スクリプトのバックボーンは、見出しの制限を克服するための再帰を含め、結果をCSVファイルに出力することを除いて、Googleのサンプル版と本質的に同じです。 今日では403
エラーを返すために始めた:Google Reporting API v4を使用して以前にPythonスクリプトを実行中403
HttpError 403 when requesting https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json returned "The caller does not have permission"
私は解決策を検索することによって、自分のデューデリジェンスをしましたが、私はすでにViewID
を使用していますし、それが実行しているコンピュータは、他のアカウントに署名されていません(レポートを実行するだけです)。また、新しいclient_secrets.json
ファイルを作成して、クォータ内にいることを確認しようとしましたが、問題は引き続き発生します。昨日から今日までは何も変わっていませんが、今日は走ることを拒否しています。私は、同じ接続オブジェクトを使用してい
EDIT が、それは一度だけインスタンス化されます、コードはここにGoogleのウェブサイト上とまったく同じである - >Hello Analytics Reporting API v4 - Python
def initialize_analyticsreporting():
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
parents=[tools.argparser])
flags = parser.parse_args([])
flow = client.flow_from_clientsecrets(
CLIENT_SECRETS_PATH, scope=SCOPES,
message=tools.message_if_missing(CLIENT_SECRETS_PATH))
storage = file.Storage('analyticsreporting.dat')
credentials = storage.get()
if credentials is None or credentials.invalid:
credentials = tools.run_flow(flow, storage, flags)
http = credentials.authorize(http=httplib2.Http())
analytics = build('analytics', 'v4', http=http, discoveryServiceUrl=DISCOVERY_URI)
return analytics
私はそれをbatchGetを呼び出しています私は方法と同様、再帰と一緒に指数バックオフを使用することによってこの問題を回避および/ exceptブロック試すことができたので...
response = analytics.reports().batchGet(body=loaded_request.get("request", {})).execute()
あなたがログインしているユーザーは、データを抽出しているビューに対して[読み取りと分析]権限を持っていますか? – vinoaj
はい、アカウントはそうです。最初のリクエストでも、それ以降のリクエストでも同じIDが表示されていても、 – MosaicOrange
が最初のリクエストで動作し、それ以降のリクエストでは機能しない場合は、後続の呼び出しで正しい資格情報を渡しません。あなたのコードを見るのに役立つだろうか。 – vinoaj