wazaari / kasapi-php
使用KAS API为PHP管理您的All-Inkl账户
Requires
- ext-soap: *
README
使用KAS API为PHP管理您的All-Inkl账户
All-Inkl.com提供了一个API,用于自动访问您的所有账户、设置、(子)域名、数据库、cron作业、邮件账户等。这个API被称为KAS API。要了解更多信息,请访问官方KAS API文档。还有一些示例表单可以尝试。
这是API的PHP实现,它提供了对API提供的所有功能的简单访问。
安装
建议的安装方法是使用Composer。此软件可在Packagist上获得。在此处可用。
只需将以下行添加到您的composer.json
文件中的require
部分:
"wazaari/kasapi-php": "dev-master"
或者,您可以克隆以下Git仓库(git clone https://github.com/waza-ari/kasapi-php.git
,见下文)。
使用方法
现在,我们将更详细地了解API的工作方式。
每次您想使用API时,首先需要创建一个KasConfiguration对象。这很容易完成
$kasConfiguration = new KasApi\KasConfiguration($username, $authData, $authType);
$username
非常容易理解。KAS API允许使用不同类型的身份验证。因此,您需要指定一个身份验证类型和相应的身份验证数据,这可能是散列密码。请参阅All-Inkl的文档以获取可能的身份验证方法列表。
例如,假设您想使用sha1
作为身份验证方法。在这种情况下,$authType
将简单地是sha1
,而$authData
应设置为您的KAS账户的sha1散列。假设您的用户名是abcd1234
且您的密码是password
,以下行将创建正确的凭据对象
$kasConfiguration = new KasApi\KasConfiguration("abcd1234", sha1("password"), "sha1");
此方法允许您对KAS API进行身份验证,而无需在配置文件或数据库中存储您的明文密码。接下来,您需要创建一个KasApi对象以进行操作
$kasApi = new KasApi\KasApi($kasConfiguration);
在此对象上,您可以调用KAS文档中指定的任何API方法。或者,您可以查看KasApi类。
$kasApi->get_databases();
KasApi类的示例可能看起来像这样
private $functions = array(
[...]
'get_dns_settings' => 'zone_host!, nameserver, record_id',
'get_domains' => 'domain_name',
'get_topleveldomains' => '',
'get_ftpusers' => 'ftp_login',
'get_mailaccounts' => 'mail_login',
[...]
);
此数组指定您可以调用的API函数以及要传递的参数。!
后缀表示此参数是必需的,必须指定(例如,zone_host!
),所有其他参数都是可选的(例如,domain_name
)。
因此,如果您查看上面的get_dns_settings
,您会看到以下调用是有效的
$kasApi->get_dns_settings(array(
'zone_host' => 'example.com.',
'record_id' => 123
));
我们省略了可选的nameserver
参数,但包含了必需的zone_host
参数。
不使用Composer的使用方法
以下是一个使用API的示例,如果您只是git clone
此仓库:(将此文件放在src
目录的父目录中。)
<?php
namespace KasApi;
foreach (glob("src/KasApi/*.php") as $filename) {
require_once $filename; // include kasapi-php
}
$kasConfiguration = new KasConfiguration("abcd1234", sha1("password"), "sha1");
$kasApi = new KasApi($kasConfiguration);
try {
$kasData = $kasApi->get_domains(); // any API function as described above
var_dump($kasData); // $kasData is a plain old PHP array
} catch(KasApiException $e) {
echo $e->getMessage(); // show message on SOAP error
}
?>
如果您有任何反馈,请以评论或问题形式通过GitHub和上述URL提供。
变更日志
版本0.5
- 从版本0.5开始,此项目现在在MIT许可证下发布。副本也可在此仓库中找到。此外,以前的GPL许可证已移除。
版本0.4
- 对从参数中获取参数时的警告进行了微小修复
版本0.3
- 本库的初始版本,由Elias Kuiter创建,并由Daniel Herrmann扩展。
- 增加了Composer支持。
致谢
Elias Kuiter创建了kasapi-php
,以提供一个简单的方式来访问All-Inkl的公共API。同样感谢Daniel Herrmann对该API进行了大规模的扩展(如简化类、纠正一些错误并添加Composer集成)。请注意,原始仓库(ekuiter/kasapi-php)现已弃用,请使用此仓库。