FuelSDK:使用get()将salesforce项拉到数据框架中



我试图使用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">

解决了这个问题

最新更新