我正在尝试使用supportsync API(https://help.supportsync.com/crm/api/help)提取我公司数据中的收益表。
我能够使用许多post和get方法,而不会出现问题,但是当我使用“ GetReturnList”帖子时,我收到以下错误消息:“ Message”:“对象引用未设置为的实例一个对象。在SupportSyncCRM”
这是我要使用的特定API帖子:https://help.supportsync.com/crm/api/help/Api/POST-api-app-Returns-GetReturnList
我尝试使用json代替有效负载数据,但这似乎并没有改变任何内容。奇怪的是,我在API中使用其他方法没有问题。
下面是我的代码段:
URL = 'https://[mycompany].supportsync.com/crm/api/app/Returns/GetReturnList'
headers = {'Authorization': 'Basic ' + auth.decode('ascii'), 'Content-Type':'application/json'}
payload = {'PageSize':'500', 'ReturnListType':'Receiving', 'SearchType':'0'}
r = requests.post(URL, headers=headers, data=payload)
print(r.status_code)
print(r.text)
print(r.json)
Here is the output generated by my print statements:
400
{"Message":"Object reference not set to an instance of an object. at SupportSyncCRM"}
<bound method Response.json of <Response [400]>>
答案 0 :(得分:0)
仔细阅读文档,URL中的app
是不正确的-它不应是文字文本app
,而是:
{app}是发出请求的应用程序,例如:zendesk
答案 1 :(得分:0)
所以我联系了他们的支持团队,他们对此做出了回应:
这是POST的示例。确保您具有所有这些字段:
{ "PageIndex":0, "PageSize":50, "SortColumn":"", "CustomerID":"", "CustomerEmail":"", "ReturnListType":"", "FlagGroupId":"", "FlagReason":"", "SearchText":"", "SearchType":0, "ReturnTypeId":"", "CarrierMethodId":"", "IsCrossShip":"", "IsPrepaidReturnLabel":"", "CreatedByUserId":"", "ProductId":"", "ReturnReasonId":"", "PaymentRequired":0, "CreatedDateFrom":"", "CreatedDateTo":"" }
然后,我更改了代码以在有效负载中包含每个字段,并更改了这一行:
r = requests.post(URL, headers=headers, json=payload)
我的响应现在正在与服务器正确通信。