WHMCS客户端库

pywhmcs的Python项目详细描述


Pywhmcs

马特,whmcs创始人/首席开发人员描述了他们的产品:
whmcs是一个针对在线业务的一体化客户管理、计费和支持解决方案。从注册到终止,whmcs是一个强大的业务自动化工具,让您牢牢掌控一切

该项目旨在提供一个易于使用、一致且简单的客户端库和cli程序,以便与whmcs软件的http api交互。

目前只有通过命令行的接口。

安装

非常简单的过程:

$ git clone git://github.com/zekzekus/pywhmcs.git
$ cd pywhmcs
$ python setup.py install

它可以用作名为pywhmcs的cli脚本!

使用量

cli程序包括使用信息。标准帮助输出为:

$ pywhmcs --help
usage: pywhmcs [-h] [--verbose] --url URL --username USERNAME --password PASSWORD --action ACTION [--params ...]

pyWHMCS Client Comman Line Interface

optional arguments:
-h, --help            show this help message and exit
--verbose             Activate verbose output
--url URL             WHMCS API endpoint URL
--username USERNAME   Username with API permission
--password PASSWORD   API user password
--action ACTION       Action name to invoke
--params ...          Parameters passed with action. (--params param1=value1 param2=value2 etc.)

如果要获取客户端列表,必须向whmcs api端点发出post请求,post body包含action=“getclients”和必要的credidentials。例如:

$ pywhmcs --url http://yourdomain.com/includes/api.php --username apiuser --password pass --action getclients

输出如下:

{
    "startnumber": 0,
    "clients": {
        "client": [
            {
                "status": "Active",
                "firstname": "John",
                "companyname": "Does Company",
                "lastname": "Doe",
                "datecreated": "2012-11-22",
                "groupid": "0",
                "id": "1",
                "email": "john@doe.com"
            }
        ]
    },
    "totalresults": "1",
    "result": "success",
    "numreturned": 1
}

对于需要额外参数(如clientid、userid等)的操作,必须使用可选的–params参数。在–params之后,必须以paramn=valuen的格式提供参数。这些参数和值将作为键值对附加到post主体并随请求一起发送。例如:

$ pywhmcs --url http://yourdomain.com/includes/api.php --username apiuser --password pass --action addclientnote --params userid=1 notes="this is a note"
{
  "result": "success",
  "noteid": 4
}

通过这种方法,您可以调用whmcs系统提供的所有acitons。您可以找到开发人员api文档here

还可以将此库安装在python路径上,并从whmcs模块导入invoke函数。它可用于与whmcs系统的内部交互。实际上,我计划在上面构建一个好的客户机,而不是实现一个可重用的django应用程序,以便在任何django应用程序和whmcs系统之间轻松通信。

待办事项

  • 目前只实现了json响应类型。whmcs api支持xml格式和简单的键值格式。将通过参数支持这些格式。
  • 创建操作类来完全管理api接口。类现在可以有关操作参数、所需数据等。
  • 为操作实现文件上载基础结构可能需要上载文件。

发展

目前,库只需要一个外部依赖项:requests HTTP client library。如果您想投稿,可以遵循以下步骤:

$ git clone git://github.com/zekzekus/pywhmcs.git
$ cd pywhmcs
$ python setup.py develop

这些命令将克隆存储库并获取所有依赖项并安装到系统中。

故障排除

  • 作为–username参数提供的用户必须具有“api权限”。您或whmcs系统的管理员必须将此权限授予您的用户。
  • 出于安全原因,whmcs系统只允许指定的一组ip地址发出api请求。因此,您的IP地址必须添加到WHMCS系统中允许的IP地址列表中。

新闻

0.0.2

发布日期:2012年1月17日

  • 自述文件的待办事项部分已更新

0.0.1

发布日期:2013年1月17日

  • 准备了cli接口。
  • 实现了cli参数格式和模型。
  • 调用已实现的函数。现在工具可以对whmcs进行任何类型的api调用

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储