我正在尝试启动并运行新的BatchJob(https://developers.google.com/adwords/api/docs/guides/batch-jobs),但缺少一部分。
文档说:
好消息是您选择的客户端库将具有 处理构造和发送请求的实用程序。该 下面的示例使用Java客户端中的 BatchJobHelper 实用程序 库。
然而,PHP库缺少Helper和任何应该这样做的方法......
任何人都有幸使用BatchJob向API发送请求?我在任何地方都找不到任何有用的例子。
谢谢!
答案 0 :(得分:1)
如果您使用composer加载新的v201603版本的adwords,您还需要调整您的composer文件以映射utils,因为它们由于某种原因在其他版本中重复。不确定为什么他们这样做。您应该能够通过以下路径找到所需的课程。希望这可以帮助。
{
"require": {
"googleads/googleads-php-lib": "8.3.0"
},
"autoload": {
"classmap": [
"vendor/googleads/googleads-php-lib/src/Google/Api/Ads/AdWords/Util/v201601"
]
}
}
答案 1 :(得分:1)
在分支实验中,他们正在重写API。似乎BatchJobHelper仍然缺失(当前写入此日期),see my issue in github requesting it。
对于获取BatchJobs,您应该使用BatchJobService类,该类是从adword服务实例化的。这是一个示例代码段:
$batch_job_service = $adWordsServices->get($session, 'BatchJobService', 'v201605', 'cm');
try
{
/** @var BatchJobReturnValue $result */
$result = $batch_job_service->mutate($operations);
}
catch(ApiException $e)
{
echo $e->getMessage() . PHP_EOL;
}
if(!empty($result) && $result instanceof Google\AdsApi\AdWords\v201605\cm\BatchJobReturnValue)
{
$batch_job = reset($result->getValue());
}
else
{
echo 'Result is empty or no valid';
}