I'm trying to get the Customer ID but I get this error:

PHP Fatal error:  Uncaught exception 
'Google\\AdsApi\\AdWords\\v201702\\cm\\ApiException' with message 
'[AuthenticationError.CLIENT_CUSTOMER_ID_IS_REQUIRED @ ; trigger:'<null>']' 
in 
/var/www/html/adwords/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/Util/Reflection.php:39\nStack
 
trace:\n#0 
/var/www/html/adwords/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/Util/Reflection.php(39):
 
ReflectionClass->newInstanceArgs(Array)\n#1 
/var/www/html/adwords/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/AdsSoapClient.php(162):
 
Google\\AdsApi\\Common\\Util\\Reflection->createInstance('Google\\\\AdsApi\\\\A...',
 
'[Authentication...')\n#2 
/var/www/html/adwords/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/AdsSoapClient.php(126):
 
Google\\AdsApi\\Common\\AdsSoapClient->parseApiExceptionFromSoapFault(Object(SoapFault))\n#3
 
/var/www/html/adwords/vendor/googleads/googleads-php-lib/src/Google/AdsApi/AdWords/v201702/mcm/ManagedCustomerService.php(103):
 
Google\\AdsApi\\Common\\AdsSoapClient->__soapCall('get', Array)\n#4 in 
/var/www/html/adwords/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/Util/Reflection.php
 
on line 39



The code I use is the one bellow. Any help would be appreciated.

namespace Google\AdsApi\Examples\AdWords\v201702\AccountManagement;
require_once __DIR__.'/vendor/autoload.php';
use Google\Auth\OAuth2;

session_start();

$oauth2 = new OAuth2([
    'authorizationUri' => 'https://accounts.google.com/o/oauth2/v2/auth',
    'tokenCredentialUri' => 'https://www.googleapis.com/oauth2/v4/token',
    'redirectUri' => 'x <http://sinaps.go.ro/adwords>xx',
    'clientId' => 'xxx',
    'clientSecret' => 'xxx',
    'scope' => 'https://www.googleapis.com/auth/adwords'
]);

if (!isset($_GET['code'])) {
  // Create a 'state' token to prevent request forgery.
  // Store it in the session for later validation.
  $oauth2->setState(sha1(openssl_random_pseudo_bytes(1024)));
  $_SESSION['oauth2state'] = $oauth2->getState();

  // Redirect the user to the authorization URL.
  $config = [
    // Set to 'offline' if you require offline access.
    'access_type' => 'offline'
  ];
  header('Location: ' . $oauth2->buildFullAuthorizationUri($config));
  exit;


// Check given state against previously stored one to mitigate CSRF attack.
}elseif (empty($_GET['state'])
    || ($_GET['state'] !== $_SESSION['oauth2state'])) {
  unset($_SESSION['oauth2state']);
  exit('Invalid state.');
}

else {
  $oauth2->setCode($_GET['code']);
  $authToken = $oauth2->fetchAuthToken();



  //  echo 'successfully connected';
}

 ?><form  method="post" action="report.php"><select name="account"><?php
use Google\AdsApi\AdWords\v201702\mcm\ManagedCustomerService;
use Google\AdsApi\AdWords\AdWordsServices;
use Google\AdsApi\AdWords\AdWordsSessionBuilder;
use Google\AdsApi\Common\OAuth2TokenBuilder;


use Google\AdsApi\AdWords\v201702\cm\CampaignService;
use Google\AdsApi\AdWords\v201702\cm\OrderBy;
use Google\AdsApi\AdWords\v201702\cm\Paging;
use Google\AdsApi\AdWords\v201702\cm\Selector;
use Google\AdsApi\AdWords\v201702\cm\SortOrder;
use Google\AdsApi\AdWords\v201702\cm\Predicate;  
use Google\AdsApi\AdWords\v201702\cm\PredicateOperator; 
$session = (new AdWordsSessionBuilder())
    ->fromFile()
    ->withOAuth2Credential($oauth2)
    ->build();

$adWordsServices = new AdWordsServices();

$managedCustomerService = $adWordsServices->get($session, 
ManagedCustomerService::class);
$selector = new Selector();
    $selector->setFields(['CustomerId', 'Name']);
 $selector->setPredicates([new Predicate('CanManageClients', 
PredicateOperator::EQUALS, ['false'])]);  // exclude MCC top accounts
$page = $managedCustomerService->get($selector);
  foreach ($page->getEntries() as $account) {
          echo ('<option value="' . $account->getCustomerId().' 
">'.$account->getCustomerId() . ' - ' . $account->getName().'</option>'); 
          }     
  
 ?>   </select><input type='submit' name='submit'/>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/ff3d2e23-18e7-4dff-b908-40564c30be4a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
  • Getting Custome... Mihai Iliescu

Reply via email to