I've imported namespaces correctly. If I provide customerid which I have 
currently access, it works fine, but when i try to access data of my 
ex-client (which of course I don't have access) the code breaks and the 
whole crons stops. I want to catch the exception so that I can download 
clients data which I have currently access and of course notify me that 
someone has left so I can stop that client's data downloading.

namespace Google\AdsApi\Examples\AdWords\v201708\BasicOperations;
ini_set("display_errors",1);
require __DIR__ . '/vendor/autoload.php';
use Google\AdsApi\AdWords\AdWordsServices;
use Google\AdsApi\AdWords\AdWordsSession;
use Google\AdsApi\AdWords\AdWordsSessionBuilder;
use Google\AdsApi\AdWords\v201708\cm\CampaignService;
use Google\AdsApi\AdWords\v201708\cm\OrderBy;
use Google\AdsApi\AdWords\v201708\cm\Paging;
use Google\AdsApi\AdWords\v201708\cm\Predicate;
use Google\AdsApi\AdWords\v201708\cm\PredicateOperator;
use Google\AdsApi\AdWords\v201708\cm\Selector;
use Google\AdsApi\AdWords\v201708\cm\SortOrder;
use Google\AdsApi\Common\OAuth2TokenBuilder;


    $oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();
    
    $error=false;
    try{
        $session = (new 
AdWordsSessionBuilder())->fromFile()->withOAuth2Credential($oAuth2Credential)->withClientCustomerId($customerid)->enablePartialFailure()->build();
    }
    catch(ApiException $apiException) {
        print_r($apiException);    
    }

    $adWordsServices=new AdWordsServices();
    $campaignService = $adWordsServices->get($session, 
CampaignService::class);

    $selector = new Selector();
    $Fields = array('Id', 'StartDate', 'EndDate', 'Name', 'Amount', 
'DeliveryMethod', 'ServingStatus', 'FrequencyCapMaxImpressions', 
'AdServingOptimizationStatus', 'TimeUnit', 'Level', 'Status', 
'BiddingStrategyType');
    $selector->setFields($Fields);
    $selector->setOrdering([new OrderBy('Name', SortOrder::ASCENDING)]);
    $selector->setPaging(new Paging(0, 5000));
    $totalNumEntries = 0;
    $icount=0;

    $selector->setPredicates([new Predicate('Status', 
PredicateOperator::IN, ['ENABLED', 'PAUSED', 'REMOVED'])]);

    $page = $campaignService->get($selector);
    





On Friday, October 13, 2017 at 5:57:07 PM UTC+5, MWA wrote:
>
> Hi,
> Can anyone tell me how to handle errors on new Adwords API v201708?
> Here is my code, I can not catch exception I've tried these possibilities.
> My code is working fine but if there is an error I want to handle it.
>
> Code:
> $oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();
>     
>     $session = (new 
> AdWordsSessionBuilder())->fromFile()->withOAuth2Credential($oAuth2Credential)->enablePartialFailure()->build();
>
>     $adWordsServices=new AdWordsServices();
>     
>     $managedCustomerService = $adWordsServices->get($session, 
> ManagedCustomerService::class);
>
>     $link = new ManagedCustomerLink();
>     $link->setManagerCustomerId($managerid);
>     $link->setClientCustomerId($customerid);
>     $link->setLinkStatus(LinkStatus::PENDING);
>
>     $linkop = new LinkOperation();    
>     $linkop->setOperator(Operator::ADD);
>     $linkop->setOperand($link);
>
>     $operations = array($linkop);
>     
>     try{
>     $result = $managedCustomerService->mutateLink($operations);
>     }catch(AdwordsApiException $e){
>         print_r($e);
>         print_r($result->getPartialFailureErrors());
>         
>     }catch(Exception $e){
>         print_r($e);
>         print_r($result->getPartialFailureErrors());
>         
>     }catch(ApiException $e){
>         print_r($e);
>         print_r($result->getPartialFailureErrors());
>         
>     }
>
> Error:
>
> *Fatal error*: Uncaught exception 
> 'Google\AdsApi\AdWords\v201708\cm\ApiException' with message 
> '[ManagedCustomerServiceError.ALREADY_INVITED_BY_THIS_MANAGER @ 
> operations[0]]' in 
> /var/www/adwords_api/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/Util/Reflection.php:39
>  
> Stack trace: #0 
> /var/www/adwords_api/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/Util/Reflection.php(39):
>  
> ReflectionClass->newInstanceArgs(Array) #1 
> /var/www/adwords_api/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/AdsSoapClient.php(165):
>  
> Google\AdsApi\Common\Util\Reflection->createInstance('Google\AdsApi\A...', 
> '[ManagedCustome...') #2 
> /var/www/adwords_api/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/AdsSoapClient.php(130):
>  
> Google\AdsApi\Common\AdsSoapClient->parseApiExceptionFromSoapFault(Object(SoapFault))
>  
> #3 
> /var/www/adwords_api/vendor/googleads/googleads-php-lib/src/Google/AdsApi/AdWords/v201708/mcm/ManagedCustomerService.php(185):
>  
> Google\AdsApi\Common\AdsSoapClient->__soapCall('mutateLink', Array in 
> */var/www/adwords_api/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/Util/Reflection.php*
>  
> on line *39*
>
>
>
> Thanks.
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/d49f5a49-cee7-48b6-a0f9-f164c86d360d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to