Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/waza-ari/kasapi-php
All-Inkl.com API for PHP - manage your All-Inkl account with PHP
https://github.com/waza-ari/kasapi-php
Last synced: 3 months ago
JSON representation
All-Inkl.com API for PHP - manage your All-Inkl account with PHP
- Host: GitHub
- URL: https://github.com/waza-ari/kasapi-php
- Owner: waza-ari
- License: mit
- Fork: true (ekuiter/kasapi-php)
- Created: 2014-11-25T19:26:05.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-05-07T08:06:25.000Z (6 months ago)
- Last Synced: 2024-07-18T23:37:48.125Z (4 months ago)
- Language: PHP
- Homepage:
- Size: 53.7 KB
- Stars: 21
- Watchers: 6
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# kasapi-php
## Manage your All-Inkl account with the KAS API for PHP
All-Inkl.com provides an API for automated access to all your accounts, settings, (sub-)domains, databases, cronjobs, mail accounts, ...
This API is called the *KAS API*. To learn more about it, visit the official [KAS API Documentation](http://kasapi.kasserver.com/dokumentation/phpdoc/).
There are also some [example forms](http://kasapi.kasserver.com/dokumentation/?open=beispiele) to try out.This is a PHP implementation of the API, which provides simple access to all functions provided by the API.
### Installation
The recommended installation method is to use Composer. This software is [available at Packagist](https://packagist.org/packages/wazaari/kasapi-php).
Just add the following line to the `require` section of your `composer.json`:
```
"wazaari/kasapi-php": "dev-master"
```Alternatively you can clone the following Git repository (`git clone https://github.com/waza-ari/kasapi-php.git`, see below).
### Usage
Now, we will take a closer look at how this API works.
Whenever you want to use the API, you need to create a KasConfiguration object first. This is done easily:
```
$kasConfiguration = new KasApi\KasConfiguration($username, $authData, $authType);
```
`$username` is quite self explaining. The KAS API allows for different types of authentication. Thus, you need to specify an authentication type and the corresponding authentication data, which could be a hashed password. Have a look at the documentation of All-Inkl to obtain a list of possible authentication methods.As an example, assume you want to use `sha1` as authentication method. In this case, `$authType` simply would be `sha1`, and `$authData` should be set to the sha1 hash of your KAS account. Assuming your username is `abcd1234` and your password is `password`, the following line would create the correct credential object:
```
$kasConfiguration = new KasApi\KasConfiguration("abcd1234", sha1("password"), "sha1");
```This method allows you to authenticate against the KAS API without storing your plain password in a configuration file or database. Next, you need to create an KasApi object to operate on:
```
$kasApi = new KasApi\KasApi($kasConfiguration);
```
On this object, you can call any API method specified in the [KAS documentation](http://kasapi.kasserver.com/dokumentation/phpdoc/packages/API%20Funktionen.html). Alternatively, you can have a look at the KasApi class.
```
$kasApi->get_databases();
```Examples from the KasApi class might look like this:
```
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',
[...]
);
```
This array specifies which API functions you may call and which parameters to pass. The `!` suffix means that this parameter is required and has to be specified (e.g. `zone_host!`), all other parameters are optional (e.g. `domain_name`).So if you look at `get_dns_settings` above, you see that a call like
```
$kasApi->get_dns_settings(array(
'zone_host' => 'example.com.',
'record_id' => 123
));
```
is perfectly valid. Notice we omitted the `nameserver` parameter, which is optional, but we included the `zone_host`, which is required in every case.### Usage without Composer
Here's an example of how to use the API if you just `git clone` this repository:
(Place this file in the parent directory of the `src` directory.)
```
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
}?>
```
If you have any feedback, please provide it as comment or issue using GitHub and the URL above.## Changelog
#### Version 0.5
* Starting from version 0.5, this project is now released under the [MIT license](http://opensource.org/licenses/MIT). A copy can also be found in this repository. Further, the former GPL license has been removed.
#### Version 0.4
* Minor fix to prevent a Warning while fetching parameters from arguments
#### Version 0.3
* Initial version of this library, created by [Elias Kuiter](https://github.com/ekuiter/) and extended by [Daniel Herrmann](https://github.com/waza-ari/).
* Composer support was added.## Credits
[Elias Kuiter](https://github.com/ekuiter/) created `kasapi-php` to provide an easy way to access All-Inkl's public API.
Credits go to [Daniel Herrmann](https://github.com/waza-ari/) as well for making big extensions to the API (such as streamlining the classes, correcting some errors and adding Composer integration).
Note that the original repository ([ekuiter/kasapi-php](https://github.com/ekuiter/kasapi-php)) is now deprecated, use this repository instead.