我试图使用Salesforce FuelSDK从我们客户的营销云中提取审计项目(即点击事件,不明事件,反弹事件等)。我确信这是由于我对api缺乏经验,但是尽管我能够从"get()"中获得成功代码,但我不确定如何提取实际内容。最终目标是将每个事件类型拉到自己的数据框架中。以下是目前为止的内容:
import FuelSDK
import ET_Client
import pandas as pd
import requests
# In[2]:
#define local variables
clientid= 'client_id_code_here'
clientsecret='client_secret_code_here'
subdomain = 'mcx1k2thcht5qzdsm6962p8ln2c8'
auth_base_url = f'https://{subdomain}.auth.marketingcloudapis.com/'
rest_url = f'https://{subdomain}.rest.marketingcloudapis.com/'
soap_url=f'https://{subdomain}.soap.marketingcloudapis.com/'
# In[3]:
#Passing config as a parameter to ET_Client constructor:
myClient = FuelSDK.ET_Client(True, False,
{'clientid': clientid,
'clientsecret': clientsecret,
'useOAuth2Authentication': 'True',
'authenticationurl': auth_base_url,
'applicationType': 'server',
'baseapiurl': rest_url,
'soapendpoint': soap_url})
# In[4]:
# Create an instance of the object type we want to work with:
list = FuelSDK.ET_List()
# In[5]:
# Associate the ET_Client- object using the auth_stub property:
list.auth_stub = myClient
# In[6]:
# Utilize one of the ET_List methods:
response = list.get()
# In[7]:
# Print out the results for viewing
print('Post Status: ' + str(response.status))
print('Code: ' + str(response.code))
print('Message: ' + str(response.message))
print('Result Count: ' + str(len(response.results)))
# print('Results: ' + str(response.results))
# In[12]:
debug = False
# stubObj = ET_Client(False, False, params={'clientid': clientid,
# 'clientsecret': clientsecret})
getBounceEvent = ET_Client.ET_BounceEvent()
getBounceEvent.auth_stub = myClient
getBounceEvent.props = ["SendID","SubscriberKey","EventDate","Client.ID","EventType","BatchID","TriggeredSendDefinitionObjectID","PartnerKey"]
# getBounceEvent.search_filter = {'Property' : 'EventDate', 'SimpleOperator' : 'greaterThan', 'DateValue' : retrieveDate}
getResponse = getBounceEvent.get()
# In[13]:
print(getResponse)
# In[13]:
#pull data into dataframe
df=pd.DataFrame(getResponse)
# In[52]:
df.head()
# In[53]:
#load data into csv data file
df.to_csv('salesforce_bounce_events.csv', index=False)
很明显,"getResponse"不会进入数据框,因为它只是一个响应代码。通过使用其他ETL程序,我知道数据在"Bounce event"中。在表格格式,我只需要知道如何从API拉它。如有任何帮助,不胜感激。
使用"getResponse.results">
解决了这个问题