0

Google アドワーズ - クライアント センターを初めて使用します。Yii フレームワークを使用して、すべての MCC キャンペーン、広告グループ、広告などを表示する Web サイトを持っています。正常に動作しています。

私の問題は、クライアント センターの電子メール、パスワード、またはクライアント 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. 理由: 不正な認証]。指定した形式でエラーを表示したい。ご意見をお聞かせください。

4

1 に答える 1

0

@lifeline、メソッド$user->GetService(GetCampaings.php)を呼び出すとエラーが発生します。サンプルコードを使用してキャンペーンを取得する場合は、次の行で例外を処理します。

try{
    $result_camp = GetCampaignsExample($user);
}
catch(Exception $e) {
    // display your error message
}

AdWords APIのドキュメントを読むことをお勧めします。これGetServiceは、サービスの種類(を使用している)に応じて、メソッドがさまざまな例外をスローする可能性があるためですCampaignService。AdWords APIでのエラー処理について詳しく学び、将来の頭痛の種を減らしてください。:)

さらに、(使用している)認証用のClientLoginメソッドは正式に非推奨になりました。詳細については、こちらをご覧ください。

于 2013-02-22T18:28:31.143 に答える