wazaari/kasapi-php

使用KAS API为PHP管理您的All-Inkl账户

v0.5.5 2024-05-07 08:05 UTC

This package is auto-updated.

Last update: 2024-09-07 08:50:11 UTC


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创建了kasapi-php,以提供一个简单的方式来访问All-Inkl的公共API。同样感谢Daniel Herrmann对该API进行了大规模的扩展(如简化类、纠正一些错误并添加Composer集成)。请注意,原始仓库(ekuiter/kasapi-php)现已弃用,请使用此仓库。