def get_groups(self, fields=None, params=None, batch=None, pending=False): param_types = {} enums = {} request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/groups', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=Group, api_type='EDGE', response_parser=ObjectParser(target_class=Group, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def api_delete(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') param_types = { 'asset_type': 'asset_type_enum', } enums = { 'asset_type_enum': [ '0', '1', '2', '3', ], } request = FacebookRequest( node_id=self['id'], method='DELETE', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AbstractCrudObject, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def get_ad_sets(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.adset import AdSet param_types = { 'date_preset': 'date_preset_enum', 'effective_status': 'list<effective_status_enum>', 'is_completed': 'bool', 'time_range': 'Object', } enums = { 'date_preset_enum': AdSet.DatePreset.__dict__.values(), 'effective_status_enum': AdSet.EffectiveStatus.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/adsets', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AdSet, api_type='EDGE', response_parser=ObjectParser(target_class=AdSet, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def delete_ad_labels(self, fields=None, params=None, batch=None, pending=False): from facebook_business.adobjects.adlabel import AdLabel param_types = { 'adlabels': 'list<Object>', 'execution_options': 'list<execution_options_enum>', } enums = { 'execution_options_enum': AdLabel.ExecutionOptions.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='DELETE', endpoint='/adlabels', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AbstractCrudObject, api_type='EDGE', response_parser=ObjectParser(target_class=AbstractCrudObject, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def create_private_reply(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning( '`success` and `failure` callback only work for batch call.') param_types = { 'message': 'string', } enums = {} request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/private_replies', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=PagePost, api_type='EDGE', response_parser=ObjectParser(target_class=PagePost, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def api_update(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning( '`success` and `failure` callback only work for batch call.') param_types = { 'upload_schedule': 'string', } enums = {} request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=ProductFeedSchedule, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def api_get(self, fields=None, params=None, batch=None, pending=False): param_types = {} enums = {} request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=PartnerIntegrationLinked, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def get_stats(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.adspixelstatsresult import AdsPixelStatsResult param_types = { 'aggregation': 'aggregation_enum', 'end_time': 'datetime', 'event': 'string', 'event_source': 'string', 'start_time': 'datetime', } enums = { 'aggregation_enum': AdsPixelStatsResult.Aggregation.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/stats', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AdsPixelStatsResult, api_type='EDGE', response_parser=ObjectParser(target_class=AdsPixelStatsResult, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def get_shared_account_info(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning( '`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.customaudiencesharedaccountinfo import CustomAudiencesharedAccountInfo param_types = {} enums = {} request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/shared_account_info', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=CustomAudiencesharedAccountInfo, api_type='EDGE', response_parser=ObjectParser( target_class=CustomAudiencesharedAccountInfo, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def create_media(self, fields=None, params=None, batch=None, pending=False): from facebook_business.adobjects.shadowigmedia import ShadowIGMedia param_types = { 'media_type': 'string', 'caption': 'string', 'image_url': 'string', 'thumb_offset': 'string', 'children': 'list<unsigned int>', } enums = {} request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/media', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=ShadowIGMedia, api_type='EDGE', response_parser=ObjectParser(target_class=ShadowIGMedia, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def create_rule(self, fields=None, params=None, batch=None, pending=False): param_types = { 'attribute': 'string', 'params': 'map', 'rule_type': 'rule_type_enum', } enums = { 'rule_type_enum': [ 'mapping_rule', 'value_mapping_rule', 'letter_case_rule', 'fallback_rule', 'regex_replace_rule', ], } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/rules', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AbstractCrudObject, api_type='EDGE', response_parser=ObjectParser(target_class=AbstractCrudObject, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def api_update(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') param_types = { 'currency': 'string', 'description': 'string', 'destination_airport': 'string', 'images': 'list<Object>', 'origin_airport': 'string', 'price': 'unsigned int', 'url': 'string', } enums = { } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=Flight, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def create_upload(self, fields=None, params=None, batch=None, pending=False): from facebook_business.adobjects.productfeedupload import ProductFeedUpload param_types = { 'file': 'file', 'password': '******', 'update_only': 'bool', 'url': 'string', 'username': '******', } enums = {} request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/uploads', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=ProductFeedUpload, api_type='EDGE', response_parser=ObjectParser(target_class=ProductFeedUpload, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def get_raw_fires(self, fields=None, params=None, batch=None, pending=False): from facebook_business.adobjects.adspixelrawfiresresult import AdsPixelRawFiresResult param_types = { 'filter': 'string', 'filter_type': 'filter_type_enum', } enums = { 'filter_type_enum': AdsPixelRawFiresResult.FilterType.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/raw_fires', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AdsPixelRawFiresResult, api_type='EDGE', response_parser=ObjectParser(target_class=AdsPixelRawFiresResult, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def create_share_d_agency(self, fields=None, params=None, batch=None, pending=False): param_types = { 'agency_id': 'string', 'business': 'string', 'relationship_type': 'list<relationship_type_enum>', 'other_relationship': 'string', } enums = { 'relationship_type_enum': AdsPixel.RelationshipType.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/shared_agencies', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AdsPixel, api_type='EDGE', response_parser=ObjectParser(target_class=AdsPixel, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def create_event(self, fields=None, params=None, batch=None, pending=False): param_types = { 'upload_tag': 'string', 'upload_id': 'string', 'upload_source': 'string', 'data': 'list<string>', 'namespace_id': 'string', 'progress': 'Object', } enums = {} request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/events', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AbstractCrudObject, api_type='EDGE', response_parser=ObjectParser(target_class=AbstractCrudObject, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def get_bundles(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning( '`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.dynamicitemdisplaybundle import DynamicItemDisplayBundle param_types = {} enums = {} request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/bundles', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=DynamicItemDisplayBundle, api_type='EDGE', response_parser=ObjectParser(target_class=DynamicItemDisplayBundle, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def api_update(self, fields=None, params=None, batch=None, pending=False): param_types = { 'adlabels': 'list<Object>', 'bid_amount': 'int', 'creative': 'AdCreative', 'display_sequence': 'unsigned int', 'execution_options': 'list<execution_options_enum>', 'name': 'string', 'status': 'status_enum', 'tracking_specs': 'Object', } enums = { 'execution_options_enum': Ad.ExecutionOptions.__dict__.values(), 'status_enum': Ad.Status.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=Ad, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def get_extended_credit_invoice_groups(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning( '`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.extendedcreditinvoicegroup import ExtendedCreditInvoiceGroup param_types = {} enums = {} request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/extended_credit_invoice_groups', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=ExtendedCreditInvoiceGroup, api_type='EDGE', response_parser=ObjectParser( target_class=ExtendedCreditInvoiceGroup, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def get_contained_offline_conversion_data_sets(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning( '`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.offlineconversiondataset import OfflineConversionDataSet param_types = {} enums = {} request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/contained_offline_conversion_data_sets', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=OfflineConversionDataSet, api_type='EDGE', response_parser=ObjectParser(target_class=OfflineConversionDataSet, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def create_upload(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.productfeedupload import ProductFeedUpload param_types = { 'fbe_external_business_id': 'string', 'file': 'file', 'password': '******', 'update_only': 'bool', 'url': 'string', 'username': '******', } enums = { } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/uploads', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=ProductFeedUpload, api_type='EDGE', response_parser=ObjectParser(target_class=ProductFeedUpload, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def api_get(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning( '`success` and `failure` callback only work for batch call.') param_types = { 'am_call_tags': 'map', 'date_preset': 'date_preset_enum', 'from_adtable': 'bool', 'time_range': 'Object', } enums = { 'date_preset_enum': [ 'last_14d', 'last_28d', 'last_30d', 'last_3d', 'last_7d', 'last_90d', 'last_month', 'last_quarter', 'last_week_mon_sun', 'last_week_sun_sat', 'last_year', 'lifetime', 'this_month', 'this_quarter', 'this_week_mon_today', 'this_week_sun_today', 'this_year', 'today', 'yesterday', ], } request = FacebookRequest( node_id=self['id'], method='GET', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=Campaign, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def get_insights_async(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.adreportrun import AdReportRun from facebook_business.adobjects.adsinsights import AdsInsights param_types = { 'action_attribution_windows': 'list<action_attribution_windows_enum>', 'action_breakdowns': 'list<action_breakdowns_enum>', 'action_report_time': 'action_report_time_enum', 'breakdowns': 'list<breakdowns_enum>', 'date_preset': 'date_preset_enum', 'default_summary': 'bool', 'export_columns': 'list<string>', 'export_format': 'string', 'export_name': 'string', 'fields': 'list<string>', 'filtering': 'list<Object>', 'level': 'level_enum', 'product_id_limit': 'int', 'sort': 'list<string>', 'summary': 'list<string>', 'summary_action_breakdowns': 'list<summary_action_breakdowns_enum>', 'time_increment': 'string', 'time_range': 'Object', 'time_ranges': 'list<Object>', 'use_account_attribution_setting': 'bool', } enums = { 'action_attribution_windows_enum': AdsInsights.ActionAttributionWindows.__dict__.values(), 'action_breakdowns_enum': AdsInsights.ActionBreakdowns.__dict__.values(), 'action_report_time_enum': AdsInsights.ActionReportTime.__dict__.values(), 'breakdowns_enum': AdsInsights.Breakdowns.__dict__.values(), 'date_preset_enum': AdsInsights.DatePreset.__dict__.values(), 'level_enum': AdsInsights.Level.__dict__.values(), 'summary_action_breakdowns_enum': AdsInsights.SummaryActionBreakdowns.__dict__.values(), } if fields is not None: params['fields'] = params.get('fields') if params.get('fields') is not None else list() params['fields'].extend(field for field in fields if field not in params['fields']) request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/insights', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AdReportRun, api_type='EDGE', response_parser=ObjectParser(target_class=AdReportRun, api=self._api), include_summary=False, ) request.add_params(params) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def create_promotion(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') param_types = { 'ad_account_id': 'string', 'ad_conversion_pixel_id': 'unsigned int', 'audience': 'audience_enum', 'audience_id': 'string', 'bid_amount': 'unsigned int', 'budget': 'unsigned int', 'cta_type': 'cta_type_enum', 'currency': 'string', 'flow_id': 'string', 'placement': 'string', 'start_time': 'unsigned int', 'stop_time': 'unsigned int', 'targeting': 'Targeting', } enums = { 'audience_enum': [ 'AUTO_LOOKALIKE', 'AUTO_PAGE_LOOKALIKE', 'AUTO_TARGETING', 'CREATE_NEW', 'CUSTOM_AUDIENCE', 'DISTRICT', 'EVENT_CUSTOM_AUDIENCES', 'EVENT_ENGAGEMENT', 'FANS', 'GROUPER', 'IG_PROMOTED_POST_AUTO', 'LOCAL', 'LOOKALIKE', 'MULT_CUSTOM_AUDIENCES', 'NCPP', 'SAVED_AUDIENCE', 'SMART_AUDIENCE', ], 'cta_type_enum': [ 'ADD_TO_CART', 'APPLY_NOW', 'BOOK_TRAVEL', 'BUY', 'BUY_NOW', 'BUY_TICKETS', 'CALL', 'CALL_ME', 'CONTACT', 'CONTACT_US', 'DONATE', 'DONATE_NOW', 'DOWNLOAD', 'EVENT_RSVP', 'FIND_A_GROUP', 'FIND_YOUR_GROUPS', 'FOLLOW_NEWS_STORYLINE', 'GET_DIRECTIONS', 'GET_OFFER', 'GET_OFFER_VIEW', 'GET_QUOTE', 'GET_SHOWTIMES', 'INSTALL_APP', 'INSTALL_MOBILE_APP', 'LEARN_MORE', 'LIKE_PAGE', 'LISTEN_MUSIC', 'LISTEN_NOW', 'MESSAGE_PAGE', 'MOBILE_DOWNLOAD', 'MOMENTS', 'NO_BUTTON', 'OPEN_LINK', 'ORDER_NOW', 'PLAY_GAME', 'RECORD_NOW', 'SAY_THANKS', 'SEE_MORE', 'SELL_NOW', 'SHARE', 'SHOP_NOW', 'SIGN_UP', 'SOTTO_SUBSCRIBE', 'SUBSCRIBE', 'UPDATE_APP', 'USE_APP', 'USE_MOBILE_APP', 'VIDEO_ANNOTATION', 'VISIT_PAGES_FEED', 'WATCH_MORE', 'WATCH_VIDEO', 'WHATSAPP_MESSAGE', 'WOODHENGE_SUPPORT', ], } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/promotions', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AbstractCrudObject, api_type='EDGE', response_parser=ObjectParser(target_class=AbstractCrudObject, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def api_update(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') param_types = { 'additional_image_urls': 'list<string>', 'additional_variant_attributes': 'map', 'android_app_name': 'string', 'android_class': 'string', 'android_package': 'string', 'android_url': 'string', 'availability': 'availability_enum', 'brand': 'string', 'category': 'string', 'checkout_url': 'string', 'color': 'string', 'condition': 'condition_enum', 'currency': 'string', 'custom_data': 'map', 'custom_label_0': 'string', 'custom_label_1': 'string', 'custom_label_2': 'string', 'custom_label_3': 'string', 'custom_label_4': 'string', 'description': 'string', 'expiration_date': 'string', 'gender': 'gender_enum', 'gtin': 'string', 'image_url': 'string', 'inventory': 'unsigned int', 'ios_app_name': 'string', 'ios_app_store_id': 'unsigned int', 'ios_url': 'string', 'ipad_app_name': 'string', 'ipad_app_store_id': 'unsigned int', 'ipad_url': 'string', 'iphone_app_name': 'string', 'iphone_app_store_id': 'unsigned int', 'iphone_url': 'string', 'manufacturer_part_number': 'string', 'material': 'string', 'mobile_link': 'string', 'name': 'string', 'offer_price_amount': 'unsigned int', 'offer_price_end_date': 'datetime', 'offer_price_start_date': 'datetime', 'ordering_index': 'unsigned int', 'pattern': 'string', 'price': 'unsigned int', 'product_type': 'string', 'retailer_id': 'string', 'sale_price': 'unsigned int', 'sale_price_end_date': 'datetime', 'sale_price_start_date': 'datetime', 'short_description': 'string', 'size': 'string', 'start_date': 'string', 'url': 'string', 'visibility': 'visibility_enum', 'windows_phone_app_id': 'string', 'windows_phone_app_name': 'string', 'windows_phone_url': 'string', } enums = { 'availability_enum': ProductItem.Availability.__dict__.values(), 'condition_enum': ProductItem.Condition.__dict__.values(), 'gender_enum': ProductItem.Gender.__dict__.values(), 'visibility_enum': ProductItem.Visibility.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=ProductItem, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def api_update(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') param_types = { 'attached_media': 'list<Object>', 'backdated_time': 'datetime', 'backdated_time_granularity': 'backdated_time_granularity_enum', 'composer_session_id': 'string', 'direct_share_status': 'unsigned int', 'feed_story_visibility': 'feed_story_visibility_enum', 'is_explicit_location': 'bool', 'is_hidden': 'bool', 'is_pinned': 'bool', 'is_published': 'bool', 'message': 'string', 'og_action_type_id': 'string', 'og_hide_object_attachment': 'bool', 'og_icon_id': 'string', 'og_object_id': 'string', 'og_phrase': 'string', 'og_set_profile_badge': 'bool', 'og_suggestion_mechanism': 'string', 'place': 'Object', 'privacy': 'string', 'product_item': 'Object', 'scheduled_publish_time': 'unsigned int', 'should_sync_product_edit': 'bool', 'source_type': 'string', 'sponsor_id': 'string', 'sponsor_relationship': 'unsigned int', 'tags': 'list<int>', 'text_format_preset_id': 'string', 'timeline_visibility': 'timeline_visibility_enum', 'tracking': 'string', } enums = { 'backdated_time_granularity_enum': Post.BackdatedTimeGranularity.__dict__.values(), 'feed_story_visibility_enum': Post.FeedStoryVisibility.__dict__.values(), 'timeline_visibility_enum': Post.TimelineVisibility.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=Post, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def api_update(self, fields=None, params=None, batch=None, pending=False): param_types = { 'account_id': 'string', 'ad_keywords': 'map', 'adlabels': 'list<Object>', 'bid_amount': 'int', 'bid_adjustments': 'Object', 'bid_strategy': 'bid_strategy_enum', 'billing_event': 'billing_event_enum', 'campaign_spec': 'Object', 'adset_schedule': 'list<Object>', 'status': 'status_enum', 'creative_sequence': 'list<string>', 'daily_budget': 'unsigned int', 'daily_imps': 'unsigned int', 'daily_min_spend_target': 'unsigned int', 'daily_spend_cap': 'unsigned int', 'date_format': 'string', 'destination_type': 'destination_type_enum', 'end_time': 'datetime', 'execution_options': 'list<execution_options_enum>', 'frequency_cap': 'unsigned int', 'frequency_cap_reset_period': 'unsigned int', 'is_autobid': 'bool', 'is_average_price_pacing': 'bool', 'lifetime_budget': 'unsigned int', 'lifetime_frequency_cap': 'unsigned int', 'lifetime_imps': 'unsigned int', 'lifetime_min_spend_target': 'unsigned int', 'lifetime_spend_cap': 'unsigned int', 'name': 'string', 'optimization_goal': 'optimization_goal_enum', 'pacing_type': 'list<string>', 'promoted_object': 'Object', 'rb_prediction_id': 'string', 'redownload': 'bool', 'rf_prediction_id': 'string', 'start_time': 'datetime', 'targeting': 'Targeting', 'time_based_ad_rotation_id_blocks': 'list<list<unsigned int>>', 'time_based_ad_rotation_intervals': 'list<unsigned int>', 'time_start': 'datetime', 'time_stop': 'datetime', 'upstream_events': 'map', 'full_funnel_exploration_mode': 'full_funnel_exploration_mode_enum', 'attribution_spec': 'list<map>', } enums = { 'bid_strategy_enum': AdSet.BidStrategy.__dict__.values(), 'billing_event_enum': AdSet.BillingEvent.__dict__.values(), 'status_enum': AdSet.Status.__dict__.values(), 'destination_type_enum': AdSet.DestinationType.__dict__.values(), 'execution_options_enum': AdSet.ExecutionOptions.__dict__.values(), 'optimization_goal_enum': AdSet.OptimizationGoal.__dict__.values(), 'full_funnel_exploration_mode_enum': AdSet.FullFunnelExplorationMode.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AdSet, api_type='NODE', response_parser=ObjectParser(reuse_object=self), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch) return request elif pending: return request else: self.assure_call() return request.execute()
def create_photo(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.photo import Photo param_types = { 'aid': 'string', 'allow_spherical_photo': 'bool', 'alt_text_custom': 'string', 'android_key_hash': 'string', 'application_id': 'string', 'attempt': 'unsigned int', 'audience_exp': 'bool', 'backdated_time': 'datetime', 'backdated_time_granularity': 'backdated_time_granularity_enum', 'caption': 'string', 'composer_session_id': 'string', 'direct_share_status': 'unsigned int', 'feed_targeting': 'Object', 'filter_type': 'unsigned int', 'full_res_is_coming_later': 'bool', 'initial_view_heading_override_degrees': 'unsigned int', 'initial_view_pitch_override_degrees': 'unsigned int', 'initial_view_vertical_fov_override_degrees': 'unsigned int', 'ios_bundle_id': 'string', 'is_explicit_location': 'bool', 'is_explicit_place': 'bool', 'is_visual_search': 'bool', 'manual_privacy': 'bool', 'message': 'string', 'name': 'string', 'no_story': 'bool', 'offline_id': 'unsigned int', 'og_action_type_id': 'string', 'og_icon_id': 'string', 'og_object_id': 'string', 'og_phrase': 'string', 'og_set_profile_badge': 'bool', 'og_suggestion_mechanism': 'string', 'place': 'Object', 'privacy': 'string', 'profile_id': 'int', 'proxied_app_id': 'string', 'published': 'bool', 'qn': 'string', 'scheduled_publish_time': 'unsigned int', 'spherical_metadata': 'map', 'sponsor_id': 'string', 'sponsor_relationship': 'unsigned int', 'tags': 'list<Object>', 'target_id': 'int', 'targeting': 'Object', 'time_since_original_post': 'unsigned int', 'uid': 'int', 'unpublished_content_type': 'unpublished_content_type_enum', 'url': 'string', 'user_selected_tags': 'bool', 'vault_image_id': 'string', } enums = { 'backdated_time_granularity_enum': Photo.BackdatedTimeGranularity.__dict__.values(), 'unpublished_content_type_enum': Photo.UnpublishedContentType.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/photos', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=Photo, api_type='EDGE', response_parser=ObjectParser(target_class=Photo, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def create_feed(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') param_types = { 'actions': 'Object', 'adaptive_type': 'string', 'album_id': 'string', 'android_key_hash': 'string', 'animated_effect_id': 'unsigned int', 'application_id': 'string', 'asked_fun_fact_prompt_id': 'unsigned int', 'asset3d_id': 'unsigned int', 'associated_id': 'string', 'attach_place_suggestion': 'bool', 'attached_media': 'list<Object>', 'audience_exp': 'bool', 'backdated_time': 'datetime', 'backdated_time_granularity': 'backdated_time_granularity_enum', 'call_to_action': 'Object', 'caption': 'string', 'checkin_entry_point': 'checkin_entry_point_enum', 'child_attachments': 'list<Object>', 'client_mutation_id': 'string', 'composer_entry_picker': 'string', 'composer_entry_point': 'string', 'composer_entry_time': 'unsigned int', 'composer_session_events_log': 'string', 'composer_session_id': 'string', 'composer_source_surface': 'string', 'composer_type': 'string', 'connection_class': 'string', 'content_attachment': 'string', 'coordinates': 'Object', 'cta_link': 'string', 'cta_type': 'string', 'description': 'string', 'direct_share_status': 'unsigned int', 'expanded_height': 'unsigned int', 'expanded_width': 'unsigned int', 'feed_targeting': 'Object', 'formatting': 'formatting_enum', 'fun_fact_prompt_id': 'unsigned int', 'fun_fact_toastee_id': 'unsigned int', 'has_nickname': 'bool', 'height': 'unsigned int', 'holiday_card': 'string', 'home_checkin_city_id': 'Object', 'image_crops': 'map', 'implicit_with_tags': 'list<int>', 'instant_game_entry_point_data': 'string', 'ios_bundle_id': 'string', 'is_backout_draft': 'bool', 'is_boost_intended': 'bool', 'is_explicit_location': 'bool', 'is_explicit_share': 'bool', 'is_group_linking_post': 'bool', 'is_photo_container': 'bool', 'link': 'string', 'location_source_id': 'string', 'manual_privacy': 'bool', 'message': 'string', 'multi_share_end_card': 'bool', 'multi_share_optimized': 'bool', 'name': 'string', 'nectar_module': 'string', 'object_attachment': 'string', 'offer_like_post_id': 'unsigned int', 'og_action_type_id': 'string', 'og_hide_object_attachment': 'bool', 'og_icon_id': 'string', 'og_object_id': 'string', 'og_phrase': 'string', 'og_set_profile_badge': 'bool', 'og_suggestion_mechanism': 'string', 'page_recommendation': 'string', 'picture': 'string', 'place': 'Object', 'place_attachment_setting': 'place_attachment_setting_enum', 'place_list': 'string', 'place_list_data': 'list', 'post_surfaces_blacklist': 'list<post_surfaces_blacklist_enum>', 'posting_to_redspace': 'posting_to_redspace_enum', 'privacy': 'string', 'prompt_id': 'string', 'prompt_tracking_string': 'string', 'properties': 'Object', 'proxied_app_id': 'string', 'publish_event_id': 'unsigned int', 'published': 'bool', 'quote': 'string', 'react_mode_metadata': 'string', 'ref': 'list<string>', 'referenceable_image_ids': 'list<string>', 'referral_id': 'string', 'sales_promo_id': 'unsigned int', 'scheduled_publish_time': 'datetime', 'source': 'string', 'sponsor_id': 'string', 'sponsor_relationship': 'unsigned int', 'suggested_place_id': 'Object', 'tags': 'list<int>', 'target_surface': 'target_surface_enum', 'targeting': 'Object', 'text_format_metadata': 'string', 'text_format_preset_id': 'string', 'text_only_place': 'string', 'throwback_camera_roll_media': 'string', 'thumbnail': 'file', 'time_since_original_post': 'unsigned int', 'title': 'string', 'tracking_info': 'string', 'unpublished_content_type': 'unpublished_content_type_enum', 'user_selected_tags': 'bool', 'video_start_time_ms': 'unsigned int', 'viewer_coordinates': 'Object', 'width': 'unsigned int', } enums = { 'backdated_time_granularity_enum': [ 'day', 'hour', 'min', 'month', 'none', 'year', ], 'checkin_entry_point_enum': [ 'BRANDING_CHECKIN', 'BRANDING_OTHER', 'BRANDING_PHOTO', 'BRANDING_STATUS', ], 'formatting_enum': [ 'MARKDOWN', 'PLAINTEXT', ], 'place_attachment_setting_enum': [ '1', '2', ], 'post_surfaces_blacklist_enum': [ '1', '2', '3', '4', '5', ], 'posting_to_redspace_enum': [ 'disabled', 'enabled', ], 'target_surface_enum': [ 'STORY', 'TIMELINE', ], 'unpublished_content_type_enum': [ 'ADS_POST', 'DRAFT', 'INLINE_CREATED', 'PUBLISHED', 'REVIEWABLE_BRANDED_CONTENT', 'SCHEDULED', 'SCHEDULED_RECURRING', ], } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/feed', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AbstractCrudObject, api_type='EDGE', response_parser=ObjectParser(target_class=AbstractCrudObject, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()
def create_video(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False): from facebook_business.utils import api_utils if batch is None and (success is not None or failure is not None): api_utils.warning('`success` and `failure` callback only work for batch call.') from facebook_business.adobjects.advideo import AdVideo param_types = { 'adaptive_type': 'string', 'animated_effect_id': 'unsigned int', 'application_id': 'string', 'asked_fun_fact_prompt_id': 'unsigned int', 'attribution_app_id': 'string', 'audio_story_wave_animation_handle': 'string', 'composer_entry_picker': 'string', 'composer_entry_point': 'string', 'composer_entry_time': 'unsigned int', 'composer_session_events_log': 'string', 'composer_session_id': 'string', 'composer_source_surface': 'string', 'composer_type': 'string', 'container_type': 'container_type_enum', 'content_category': 'content_category_enum', 'description': 'string', 'embeddable': 'bool', 'end_offset': 'unsigned int', 'fbuploader_video_file_chunk': 'string', 'file_size': 'unsigned int', 'file_url': 'string', 'fisheye_video_cropped': 'bool', 'formatting': 'formatting_enum', 'fov': 'unsigned int', 'front_z_rotation': 'float', 'fun_fact_prompt_id': 'unsigned int', 'fun_fact_toastee_id': 'unsigned int', 'guide': 'list<list<unsigned int>>', 'guide_enabled': 'bool', 'has_nickname': 'bool', 'holiday_card': 'string', 'initial_heading': 'unsigned int', 'initial_pitch': 'unsigned int', 'instant_game_entry_point_data': 'string', 'is_boost_intended': 'bool', 'is_explicit_share': 'bool', 'is_group_linking_post': 'bool', 'is_voice_clip': 'bool', 'location_source_id': 'string', 'manual_privacy': 'bool', 'offer_like_post_id': 'unsigned int', 'og_action_type_id': 'string', 'og_icon_id': 'string', 'og_object_id': 'string', 'og_phrase': 'string', 'og_suggestion_mechanism': 'string', 'original_fov': 'unsigned int', 'original_projection_type': 'original_projection_type_enum', 'publish_event_id': 'unsigned int', 'react_mode_metadata': 'string', 'referenced_sticker_id': 'string', 'replace_video_id': 'string', 'sales_promo_id': 'unsigned int', 'scheduled_publish_time': 'unsigned int', 'slideshow_spec': 'map', 'source': 'string', 'spherical': 'bool', 'start_offset': 'unsigned int', 'swap_mode': 'swap_mode_enum', 'text_format_metadata': 'string', 'throwback_camera_roll_media': 'string', 'thumb': 'file', 'time_since_original_post': 'unsigned int', 'title': 'string', 'transcode_setting_properties': 'string', 'unpublished_content_type': 'unpublished_content_type_enum', 'upload_phase': 'upload_phase_enum', 'upload_session_id': 'string', 'upload_setting_properties': 'string', 'video_file_chunk': 'string', 'video_start_time_ms': 'unsigned int', 'waterfall_id': 'string', } enums = { 'container_type_enum': AdVideo.ContainerType.__dict__.values(), 'content_category_enum': AdVideo.ContentCategory.__dict__.values(), 'formatting_enum': AdVideo.Formatting.__dict__.values(), 'original_projection_type_enum': AdVideo.OriginalProjectionType.__dict__.values(), 'swap_mode_enum': AdVideo.SwapMode.__dict__.values(), 'unpublished_content_type_enum': AdVideo.UnpublishedContentType.__dict__.values(), 'upload_phase_enum': AdVideo.UploadPhase.__dict__.values(), } request = FacebookRequest( node_id=self['id'], method='POST', endpoint='/videos', api=self._api, param_checker=TypeChecker(param_types, enums), target_class=AdVideo, api_type='EDGE', response_parser=ObjectParser(target_class=AdVideo, api=self._api), ) request.add_params(params) request.add_fields(fields) if batch is not None: request.add_to_batch(batch, success=success, failure=failure) return request elif pending: return request else: self.assure_call() return request.execute()