在我的应用程序中,我将使用connectwise API,但我不知道如何调用它们的API,例如
How to connect
How to pass header (json data)
How to authentication (I have company id , public and private key)
How to make call and take response
我是Python的家伙,提前谢谢
发布于 2017-02-02 21:56:43
这个问题相当广泛,如果您还不熟悉Requests module之类的东西,那么就需要熟悉它。
此外,ConnectWise在their developer site上有很多文档,注册是免费和容易的。
然而,在过去的几周里,我自己经历了这段旅程,学到了很多东西,所以我将与你们分享它。
身份验证
身份验证是通过创建API用户来完成的。在CW Manage中,您可以使用API许可类创建成员用户。
在ConnectWise Manage中:
授权头
在Python中:
>>> import base64
>>> base64.b64encode("a+b:c")
...where a是您的ConnectWise公司名称(您在登录框中键入的名称),b是您的公钥,c是您的私钥。这将返回一些你用来访问系统的东西。复印一下。
提出你的第一个请求
现在,在Python中创建一个新文件,并将其放入其中(这是快速而肮脏的,但应该可以让您开始使用它):
import requests
cwToken = ""
# This is the ConnectWise access code generated earlier
cwUrl = "https://api-eu.myconnectwise.net/v4_6_release/apis/3.0/"
# check the URL matches your region, look at your CW Manage login box if not
cwHeaders = {"Authorization":"Basic " + cwToken,
"clientID":"<insertyoursecretClientIDhere>",
"Content-Type":"application/json"}
# this is your authorisation payload
try:
r = requests.get(cwUrl + "company/companies?pageSize=1000&conditions=type/id==1", headers=cwHeaders)
# request has been made
r.raise_for_status()
except:
print(r.text)
raise
companies = r.json()
companies对象现在包含您的前1,000个客户的列表(类型是ID1 -- client)。我包含了一个条件字符串的示例,因为我花了一段时间才弄清楚它是什么以及如何使用它。但是如果你不想让服务器为你做过滤的话,就把它去掉。
然后,您可以修改上面的代码,或者将其转换为模块(我就是这样做的),然后进行快速和可移植的调用,如下所示
cw.getCompanies()
它将简单地返回一个JSON对象,其中包含您的所有公司。
更进一步
研究文档!!它足够全面,足以让您上手。论坛由工作人员主动监控(尽管它们主要帮助处理C#查询,而不是脚本)。
发布于 2020-03-18 02:05:49
只是2020年的更新,因为Daniel的回应非常有帮助,但缺少2019年Connectwise所做的更改,该更改现在需要ClientID才能进行身份验证。
在此处创建一个客户端ID (滚动到底部,尽管阅读所有内容会更快、更有用):https://developer.connectwise.com/ClientID#What_is_a_clientId.3F
Daniel的代码应该如下所示:
cwHeaders = {"Authorization":"Basic " + cwToken,
"clientID":"<insertyoursecretClientIDhere>",
"Content-Type":"application/json"}
https://stackoverflow.com/questions/41831420
复制相似问题