Google Adword PHP客户端库无法连接到主机

时间:2011-04-25 07:40:05

标签: php google-adwords client-library

我正在努力连接我的网站以连接到谷歌Adwords,根据我网站上的产品创建广告和营销。我尝试通过发送直接curl请求进行连接并解析收到的SOAP响应。但对于每个请求,这都变得越来越复杂。所以我尝试使用Google Code中提供的PHP客户端库。但是这个例子都没有正常工作。我更改了auth.ini文件中的用户帐户详细信息,但仍然使用它所说的示例文件

  

无法获得authToken。原因是:    无法连接到主机'。

我尝试在不同的服务器上运行脚本但仍然遇到相同的错误。

以下是从Google adwords获取所有广告的代码,这是来自客户端库的示例文件

$path = dirname(__FILE__) . '/../../src';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

require_once 'Google/Api/Ads/AdWords/Lib/AdWordsUser.php';

try {
  // Get AdWordsUser from credentials in "../auth.ini"
  // relative to the AdWordsUser.php file's directory.
  $user = new AdWordsUser();

  // Log SOAP XML request and response.
  $user->LogDefaults();

  // Get the AdGroupAdService.
  $adGroupAdService = $user->GetAdGroupAdService();

  $adGroupId = (float) '01';

  // Create selector.
  $selector = new Selector();
  $selector->fields = array('Id', 'AdGroupId', 'Status');
  $selector->ordering = array(new OrderBy('Id', 'ASCENDING'));

  // Create predicates.
  $adGroupIdPredicate = new Predicate('AdGroupId', 'IN', array($adGroupId));
  // By default disabled ads aren't returned by the selector. To return them
  // include the DISABLED status in a predicate.
  $statusPredicate =
      new Predicate('Status', 'IN', array('ENABLED', 'PAUSED', 'DISABLED'));
  $selector->predicates = array($adGroupIdPredicate, $statusPredicate);

  // Get all ads.
  $page = $adGroupAdService->get($selector);

  // Display ads.
  if (isset($page->entries)) {
    foreach ($page->entries as $adGroupAd) {
      printf("Ad with id '%s', type '%s', and status '%s' was found.\n",
          $adGroupAd->ad->id, $adGroupAd->ad->AdType, $adGroupAd->status);
    }
  } else {
    print "No ads were found.\n";
  }
} catch (Exception $e) {
    echo 'Inside catch exception';
  print $e->getMessage();
}

并在settings.ini文件中

  

DEFAULT_SERVER =   “https://adwords-sandbox.google.com”

     

; AUTH_SERVER = "<SERVER>"

在auth.ini文件中 我的Google帐户的用户名和密码设置正确。

有人可以帮我解决这个问题。

由于

1 个答案:

答案 0 :(得分:0)

AUTH_SERVER设置,而不是DEFAULT_SERVER,表示身份验证请求的发送位置。这应该位于settings.ini的底部,但通常会被注释掉,以便使用默认设置https://www.google.com。您应该检查AUTH_SERVER是否已注释掉,并且您可以连接到https://www.google.com