在我的应用程序中,我将使用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人 提前致谢
答案 0 :(得分:2)
这个问题非常广泛,如果你还没有,你需要熟悉Requests module等内容。
另外,ConnectWise在their developer site有很多文档,注册也是免费的。
然而,过去几周我自己经历了这段旅程并学到了很多东西,所以我会和你分享。
通过创建API用户完成身份验证。在CW管理中,您可以使用API许可证类创建成员用户。
在ConnectWise管理中:
在Python中:
>>> import base64
>>> base64.b64encode("a+b:c")
...其中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,
"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()
公司对象现在包含前1,000个客户的列表(类型为ID 1 - 客户端)。我已经包含了一个条件字符串的例子,因为我花了一段时间来弄清楚它是什么以及如何使用它。但是,如果您不希望服务器为您进行过滤,请将其取下。
然后你就可以修改上面的内容了,或者将它变成一个模块(这就是我所做的),然后进行快速便携的调用,比如
cw.getCompanies()
只会返回一个JSON对象,所有公司都在。
研究文档!!它非常全面,可以帮助您入门。并且论坛受到工作人员的积极监控(尽管他们主要使用C#查询而不是脚本)。
答案 1 :(得分:2)
自从Daniel的回复非常有帮助以来,这只是2020年的更新,但缺少了Connectwise在2019年所做的更改,该更改现在需要使用ClientID进行身份验证。
在此处输入一个客户ID(滚动到底部,尽管读取所有ID既快捷又有用): https://developer.connectwise.com/ClientID#What_is_a_clientId.3F
Daniel的代码应如下所示:
cwHeaders = {"Authorization":"Basic " + cwToken,
"clientID":"<insertyoursecretClientIDhere>",
"Content-Type":"application/json"}