def handle(self, *args, **options): if len(args) != 1: raise CommandError("Usage: <product.id>") product_id = args product = Product.objects.get(pk=product_id) campaign_name = 'PLA - %s' % product.category_tree client = AdWordsClient(path=os.path.join('..', '..', '..', '..', '..')) campaign_service = client.GetCampaignService(version='v201306') selector = { 'fields': ['Id', 'Name', 'Status'], 'paging': { 'startIndex': str(0), 'numberResults': str(10) }, 'predicates': [{ 'field': 'Name', 'operator': 'EQUALS', 'values': ['PLA - Animals and Pets > Houses and Kennels > Houses'] }] }
def _RunTestWithBuffer(self, buffer_): """Tests error parsing using the given AdWordsSoapBuffer.""" client = AdWordsClient(headers={ 'userAgent': 'USER_AGENT', 'developerToken': 'DEVELOPER_TOKEN', 'clientCustomerId': 'CLIENT_CUSTOMER_ID', 'oauth2credentials': OAuth2Credentials('ACCESS_TOKEN', 'client_id', 'client_secret', 'refresh_token', None, 'uri', 'user_agent') }, path='/tmp/') with mock.patch('adspygoogle.SOAPpy.WSDL.Proxy'): service = client.GetCampaignService() buffer_.write(open(BUFFER_FILE_LOCATION).read()) try: service._HandleLogsAndErrors(buffer_, '', '', {'data': 'datum'}) except AdWordsRequestError, e: self.assertEqual(-1, e.code) self.assertEqual(1, len(e.errors)) error_detail = e.errors[0] self.assertEqual( 'Please correct the capitalization in the following ' 'phrase(s): \'AAAAAAAAAAAAAAAAAAAAA\'', error_detail.externalPolicyDescription) self.assertEqual('[Capitalization] Excessive capitalization', error_detail.externalPolicyName) self.assertEqual(None, error_detail.externalPolicyUrl) self.assertEqual('true', error_detail.isExemptable) self.assertEqual('operations[0].operand.ad.headline', error_detail.fieldPath) self.assertEqual('PolicyViolationError', error_detail.type) self.assertEqual(None, error_detail.trigger) self.assertEqual( { 'policyName': 'capitalization', 'violatingText': 'AAAAAAAAAAAAAAAAAAAAA' }, error_detail.key) self.assertEqual({ 'index': '0', 'length': '21' }, error_detail.violatingParts)
'oauth2credentials': credential }) # OAuth2 credentials objects can be reused credentials = client.oauth2credentials print 'OAuth2 authorization successful!' # OAuth2 credential objects can be refreshed via credentials.refresh() - the # access token expires after 1 hour. credentials.refresh(httplib2.Http()) # Note: you could simply set the credentials as below and skip the previous # steps once access has been granted. client.oauth2credentials = credentials campaign_service = client.GetCampaignService(version='v201402') # Get all campaigns. # Construct selector and get all campaigns. selector = {'fields': ['Id', 'Name', 'Status']} campaigns = campaign_service.Get(selector)[0] # Display results. if 'entries' in campaigns: for campaign in campaigns['entries']: print( 'Campaign with id \'%s\', name \'%s\' and status \'%s\' was found.' % (campaign['id'], campaign['name'], campaign['status'])) else: print 'No campaigns were found.'