试图从谷歌DFA报告工具获取数据?

时间:2013-12-20 06:27:36

标签: python google-oauth google-dfp

我正在尝试从Google获取oauth,每次我需要在我的控制台中复制并粘贴生成的代码后进行身份验证! 我希望它能自动化吗? 知道我该怎么办?

我有这个代码!

DFA_USER_PROFILE_NAME='MYPROFILE_NAME'

scope = ["https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/dfareporting"]

try:

   redirect_uri=redirect_uri='urn:ietf:wg:oauth:2.0:oob'
   flow=flow_from_clientsecrets('Location of the json file', scope, redirect_uri, message)
   authorize_url = flow.step1_get_authorize_url()
   self.redirect(authorize_url)
   credential = flow.step2_exchange(self.request.params)
   storage=StorageByKeyName(credentials,user.user_id(),'credentials'
                         )
   storage.put(credentials)
   user=user.get_current_user()

   credentials = client.oauth2credentials
   client.oauth2credentials = credentials
   http = httplib2.Http()

except BaseException as e: print "this is really a error that has occured ",e

我正在尝试但我不知道我哪里出错了?

什么是self.params? 这项服务在Google Cloud中是免费的吗?

1 个答案:

答案 0 :(得分:2)

尝试以下操作 - 它应该第一次提示您,但随后将凭据写入磁盘并将其读入以进行后续调用:

import httplib2
from oauth2client.file import Storage
from oauth2client.client import flow_from_clientsecrets
from oauth2client.tools import run_flow, argparser
from apiclient.discovery import build

storage = Storage("/path/to/saved_user_creds.dat")
credentials = storage.get()
if credentials is None or credentials.invalid:
  credentials = run_flow(flow_from_clientsecrets("/path/to/client_secrets.json", scope=["scope1" ,"scope2"]), storage, argparser.parse_args([]))
http = credentials.authorize(httplib2.Http())

# Use the http object as needed...
service = build("bigquery", "v1")
result = service.object().method(name=value).execute(http=http)