2017-05-21 122 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