显示无效的 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 报告可以获得多少?

Google 应用脚本中的 Adword 脚本

google adwords 测试帐户的开发者令牌

google adwords api 与 google-adwords-api gem

尝试将网络媒体资源与 AdWords (Google Ads) 帐户相关联时权限不足 (403)