【发布时间】:2014-11-25 02:20:07
【问题描述】:
我使用 google DFP api 来收集关于我们网站上点击的广告的一些统计信息。
代码是用 Python 编写的。目前,我正在尝试升级代码以使用 oAuth 2。
由于代码每天自动运行,无需任何用户参与,因此我创建了一个
我的 google 项目下的服务帐户,并将该帐户添加到 DoubleClick for
我们公司的出版商网络。根据网上的示例代码,我写了这个:
import httplib2
from oauth2client.client import SignedJwtAssertionCredentials
from apiclient.discovery import build
from googleads.dfp import DfpClient
GOOGLE_DFP_SCOPE="https://www.googleapis.com/auth/dfp"
API_VERSION="v201411"
KEY_FILE="*******.p12"
ACCT_EMAIL="************************@developer.gserviceaccount.com"
NETWORK_CODE="**********"
with open(KEY_FILE) as config_file:
my_private_key = config_file.read()
credentials = SignedJwtAssertionCredentials(service_account_name=ACCT_EMAIL, private_key=my_private_key,scope=GOOGLE_DFP_SCOPE)
http = httplib2.Http()
http_auth = credentials.authorize(http)
dfp_client = build(serviceName='dfp',version=API_VERSION,http=http_auth)
这段代码好像不正确,因为network_code还没有通过 代码中的任何位置。此外,它失败并显示以下消息:
apiclient.errors.UnknownApiNameOrVersion:名称:dfp 版本:v201411。
另外,下面一行:
dfp_client = DfpClient.LoadFromStorage()
不适用于我的情况,因为这似乎基于 googleads.yaml 仅针对具有客户端密码而非 P12 私钥的 Web 应用帐户进行格式化。
有什么建议吗?谢谢。
【问题讨论】:
标签: python yaml jwt google-dfp service-accounts