显示无效的 google adwords 帐户错误
Posted
技术标签:
【中文标题】显示无效的 google adwords 帐户错误【英文标题】:Display error with invalid google adwords account 【发布时间】:2013-02-21 12:25:24 【问题描述】:我是Google adwords - My client center 的新手。我有一个网站可以使用 Yii 框架查看所有 MCC 活动、广告组、广告等。它工作正常。
我的问题是,如果 Mcc 电子邮件或密码或客户端 ID 无效,它会显示如下代码的错误。
Failed to get authToken. Reason: BadAuthentication
$response = $this->Login();
095 $fields = $this->ParseResponse($response);
096 if (array_key_exists('Error', $fields))
097 $error = $fields['Error'];
098 if (array_key_exists('Info', $fields))
099 $error .= ': ' . $fields['Info'];
100
101 $url = array_key_exists('Url', $fields) ? $fields['Url'] : NULL;
102 $captchaToken = array_key_exists('CaptchaToken', $fields) ?
103 $fields['CaptchaToken'] : NULL;
104 $captchaUrl = array_key_exists('CaptchaUrl', $fields) ?
105 $fields['CaptchaUrl'] : NULL;
106 throw new AuthTokenException($error, $url, $captchaToken, $captchaUrl);
107 else if (!array_key_exists('Auth', $fields))
108 throw new AuthTokenException('Unknown');
109 else
110 return $fields['Auth'];
111
112
113
114 /**
115 * Makes the client login request and stores the result.
116 * @return string the response from the ClientLogin API
117 * @throws AuthTokenException if an error occurs during authentication
118 */
但我想将错误显示为“您的帐户无效”。请告知我可以在哪里写条件以检查帐户是否有效。
我对此没有太多想法。我搜索了 google adwords api 客户端库,发现了以下“http://code.google.com/p/google-api-adwords-php/downloads/list”。之后,下载 aw_api_php_lib_3.2.2.tar.gz 并将该代码放在“mysite/protected/”文件夹中。我已经修改了“mysite/protected/adwords/src/Google/Api/Ads/AdWords/auth.ini”文件中的配置。
在视图文件 [mysite/protected/views/site/view.php] 中,我将 Adwords 函数称为,
Yii::import('application.adwords.*');
require_once('examples/v201206/BasicOperations/GetCampaigns.php')
$user = new AdWordsUser();
$user->LogAll();
$result_camp = GetCampaignsExample($user);
它返回所有广告系列。但是如果我提供了错误的配置细节,它会显示上述错误 [Failed to get authToken.原因:BadAuthentication]。我想以指定的格式显示错误。请指教。
【问题讨论】:
我的肮脏解决办法是捕获 AuthTokenException 异常并很好地显示它们。这是一个插件还是你的代码会引发错误? 我必须猜它是哪个插件吗? @DarkMukke 请参见上文了解更多信息。我不确定哪个会引发错误,可能是 Google adwords 应用程序通过了错误。如果我错了,请纠正我。谢谢 【参考方案1】:@lifeline,当你调用方法$user->GetService
(GetCampaings.php)时发生错误。
如果您想使用示例代码获取campaings,请处理以下行中的异常:
try
$result_camp = GetCampaignsExample($user);
catch(Exception $e)
// display your error message
我建议您阅读AdWords API documentation,因为GetService
方法可能会抛出很多不同的异常,具体取决于服务类型(您使用的是CampaignService
)。尝试详细了解 AdWords API 中的错误处理,以减少未来的麻烦。 :)
此外,用于身份验证的 ClientLogin 方法(您正在使用)已被正式弃用。查看更多详情here。
【讨论】:
以上是关于显示无效的 google adwords 帐户错误的主要内容,如果未能解决你的问题,请参考以下文章
Google Adwords API 报告实用程序 - PHP - XML 无效?
与链接到 Google Adwords 帐户的 Google Analytics API 相比,Google Adwords API 报告可以获得多少?