2017-05-21 87 views
0

我试图让所有clients using MindBody API,我想这一点,我怎样才能与MINDBODY API Python中的所有客户端

from suds.client import Client 
from Helper.ClientService import ClientServiceMethods 

# Making a call 
calls = ClientServiceMethods() 
result = calls.GetAllClients() 
client_dict = Client.dict(result) 
clients = client_dict['Clients'] 
client_list = clients.Client # transferring clients into a python list 

#printing the lenght of received clients list 
print len(client_list) 

上面的代码将工作,但问题是,它会拉不超过客户端,就是这样。 从MindBody DocsGettAllClients应该得到1000个客户端,一个电话的限制是1000这意味着我可以达到1000,但问题是,我注意到能够得到至少1000,我只得到27个客户。

注:我与演示数据,沙箱任何人都可以看他们, 工作,我使用的示例代码their MindBody Python repository

我在得到所有客户的数据通过API的使用,这些客户端可以查看from here

用户名:Siteowner |密码:apitest1234

+0

您确定有超过27个客户端要获取吗? – snakecharmerb

+0

是的,我相信你可以检查他们的你我自己我会离开上面的密码,任何人都可以看到它,因为他们只是演示 – Ayoub

回答

0

对于任何人谁也有问题,这将是一个很大的帮助。

,当我们拨打电话GetClients,MINDBODY会送客户,但它会代表他们的网页,使25客户端是第一页表格如果u想要得到下一个25客户端,你将不得不调用索引的页面2等等等等。

在这个代码为u将如何做到这一点,利用API Example codeClientService,做到这一点的方法GetClientsByString

def GetClientsByString(self, searchStr): 
     """Convenience method to find clients containing searchStr in their name or e-mail.""" 
     request = self.CreateBasicRequest("GetClientsRequest") 

     # Since SearchText is just a string, we can assign it directly. 
     request.SearchText = searchStr 
     request.CurrentPageIndex = 1 # increase this number by one each time 

     return self.service.service.GetClients(request) 
0

这是我走近它里面;非常开放,以更好的方式,这不是API密集型:

clientService = ClientServiceCalls() 

    #get all client IDs 

    clientResponse = clientService.GetClientsByString('') 
    clientList = clientResponse.Clients.Client 

    clientVisitsDict = [] 

    for c in clientList: 

     #Call get ClientVisits API on each Client ID 

     clientResponseVisits = clientService.GetClientVisits(str(c.ID)) 

     if clientResponseVisits.Visits: 
      visitsList = clientResponseVisits.Visits.Visit 
      for v in visitsList: 

       ### your code here