在我的应用程序中,我将使用 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
Run Code Online (Sandbox Code Playgroud)
我是 Python 人 提前致谢
这个问题非常广泛,如果您还没有熟悉诸如Requests 模块之类的东西,您将需要熟悉它。
此外,ConnectWise 在他们的开发者站点上有很多文档,并且注册是免费且简单的。
然而,在过去的几周里,我自己经历了这段旅程,学到了很多东西,所以我会和你分享。
身份验证是通过创建 API 用户来完成的。在 CW Manage 中,您可以创建具有 API 许可类别的成员用户。
在 ConnectWise 管理中:
在 Python 中:
>>> import base64
>>> base64.b64encode("a+b:c")
Run Code Online (Sandbox Code Playgroud)
...其中 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()
Run Code Online (Sandbox Code Playgroud)
公司对象现在包含您的前 1,000 个客户的列表(类型为 ID 1 -- 客户)。我已经包含了一个条件字符串示例,因为我花了一段时间才弄清楚它是什么以及如何使用它。但是,如果您不希望服务器为您进行过滤,则只需将其取下即可。
然后你就可以修改上面的内容,或者把它变成一个模块(这就是我所做的)然后进行快速和便携的调用,比如
cw.getCompanies()
Run Code Online (Sandbox Code Playgroud)
这将简单地返回一个包含所有公司的 JSON 对象。
研究文档!!它足够全面,可以帮助您入门。并且论坛由工作人员积极监控(尽管他们主要帮助 C# 查询而不是脚本)。