首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python实现Connectwise REST API

使用python实现Connectwise REST API
EN

Stack Overflow用户
提问于 2017-01-24 23:00:48
回答 2查看 3.4K关注 0票数 0

在我的应用程序中,我将使用connectwise API,但我不知道如何调用它们的API,例如

代码语言:javascript
运行
复制
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的家伙,提前谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-02-02 21:56:43

这个问题相当广泛,如果您还不熟悉Requests module之类的东西,那么就需要熟悉它。

此外,ConnectWise在their developer site上有很多文档,注册是免费和容易的。

然而,在过去的几周里,我自己经历了这段旅程,学到了很多东西,所以我将与你们分享它。

身份验证

身份验证是通过创建API用户来完成的。在CW Manage中,您可以使用API许可类创建成员用户。

在ConnectWise Manage中:

  1. 转至System => Members
  2. 转至API Members选项卡。
  3. 创建一个新的API成员,使其能够访问您需要的区域,如公司/地区级别。请注意用户名和您不能指定密码。填写所有必填字段(所有者ID、系统默认值、组、批准者等)。当您使此用户转到API密钥选项卡时,执行
  4. 。输入新密钥集的描述,然后保存它。当您这样做时,您将看到一次(且仅一次)公钥和私钥。把它们记下来。

授权头

在Python中:

代码语言:javascript
运行
复制
>>> import base64
>>> base64.b64encode("a+b:c")

...where a是您的ConnectWise公司名称(您在登录框中键入的名称),b是您的公钥,c是您的私钥。这将返回一些你用来访问系统的东西。复印一下。

提出你的第一个请求

现在,在Python中创建一个新文件,并将其放入其中(这是快速而肮脏的,但应该可以让您开始使用它):

代码语言:javascript
运行
复制
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)。我包含了一个条件字符串的示例,因为我花了一段时间才弄清楚它是什么以及如何使用它。但是如果你不想让服务器为你做过滤的话,就把它去掉。

然后,您可以修改上面的代码,或者将其转换为模块(我就是这样做的),然后进行快速和可移植的调用,如下所示

代码语言:javascript
运行
复制
cw.getCompanies()

它将简单地返回一个JSON对象,其中包含您的所有公司。

更进一步

研究文档!!它足够全面,足以让您上手。论坛由工作人员主动监控(尽管它们主要帮助处理C#查询,而不是脚本)。

票数 6
EN

Stack Overflow用户

发布于 2020-03-18 02:05:49

只是2020年的更新,因为Daniel的回应非常有帮助,但缺少2019年Connectwise所做的更改,该更改现在需要ClientID才能进行身份验证。

在此处创建一个客户端ID (滚动到底部,尽管阅读所有内容会更快、更有用):https://developer.connectwise.com/ClientID#What_is_a_clientId.3F

Daniel的代码应该如下所示:

代码语言:javascript
运行
复制
cwHeaders = {"Authorization":"Basic " + cwToken,
             "clientID":"<insertyoursecretClientIDhere>",
             "Content-Type":"application/json"}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41831420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档