greenreader9 / namesilo-php-api
NameSilo API 的 PHP 封装
Requires
- php: >=7.1
README
NameSilo API 的 PHP 封装
关于我
这个 PHP 类是一个 API 封装器,截至 2024 年 9 月支持 NameSilo 的所有当前功能(这其实是个谎言,除了 bidAuctions
调用外,其他所有功能都支持)
这个类最初是为私人使用而创建的,但现在已根据 MIT 许可证发布,供大家享用,因为开源很棒
话虽如此,它 应该 可以正常工作,但我不能保证。如果您发现任何错误,请通过 问题 或 PR 来修复。
安装我
通过 Composer 安装
composer require greenreader9/namesilo-php-api
或者抓取 /src/NameSiloAPI.php 文件,这也行
使用我
- 安装我
- 初始化我
require_once __DIR__.'/vendor/autoload.php'; use Greenreader9\NameSiloAPI; $api = new NameSiloAPI('your-api-key', 'application-name', 'bulk');
new NameSiloAPI($apiKey, $UserAgent, $BulkORnormal)
apiKey
是您的 NameSilo API 密钥。不要与他人分享
UserAgent
是您应用程序的名称。保持简短且具有描述性
BulkORnormal
将其设置为 bulk
以使用 BulkAPI,null 或 normal
以使用常规 API
提示:所有命令都可以使用除 registerDomainDrop
命令之外的任何 API 类型,该命令需要批量 API
- 调用一个函数
$apicall = $api->listDomains();
如何获取函数名?
访问 API 文档:https://www.namesilo.com/api-reference
转到 "可用操作" 部分
找到您想要进行的 API 调用,并复制以下 URL 显示的部分
文档中显示的 URL:https://www.namesilo.com/api/getPrices?version=1&type=xml&key=12345
您需要复制的内容:getPrices
(也称为最终斜杠(/
)之后的部分)
如何获取函数参数?
访问 API 文档:https://www.namesilo.com/api-reference
转到 "可用操作" 部分
找到您想要进行的 API 调用,并滚动到 请求参数
部分
API 页面上参数的列出顺序是此封装器接受的顺序(很简单,对吧?)
省略参数
有两种方法可以做到这一点
-
只需不发送它。如果函数有 1 个可选参数,没有必需的参数,只需执行
$api->func()
-
将其设置为 null。
$api->func('ThisIsNeeded', null, 'ThisIsAlsoNeeded')
执行了哪些验证?
基本上没有。它确实会检查您是否为 registerDomainDrop
使用了 bulkAPI,并且您没有尝试调用 bidAuctions
函数。它还要求您发送所有 NameSilo 标记为始终必需的参数。
任何其他错误都将发送到 NameSilo API,并希望它返回一个有用的错误消息。请参阅 API 错误在此 -> 点击 响应代码
如何读取响应?
您将以 PHP 对象的形式收到响应(不,我不会提供解析它的支持,请询问 Google 或查阅 PHP 书籍)
对于 listDomains
调用的示例
object(SimpleXMLElement)#3 (2) {
["request"]=> object(SimpleXMLElement)#2 (2) {
["operation"]=> string(11) "listDomains"
["ip"]=> string(13) "0.0.0.0"
}
["reply"]=> object(SimpleXMLElement)#4 (3) {
["code"]=> string(3) "300"
["detail"]=> string(7) "success"
["domains"]=> object(SimpleXMLElement)#5 (1) {
["domain"]=> array(5) {
[0]=> string(14) "domain1.com"
[1]=> string(14) "domain2.net"
[2]=> string(10) "domain3.top"
[3]=> string(14) "domain4.net"
[4]=> string(17) "domain5.com"
}
}
}
}
生成该响应的代码
<?php require_once __DIR__.'/vendor/autoload.php'; use Greenreader9\NameSiloAPI; $api = new NameSiloAPI('xxxxxxxxxxxx', 'My Awesome Application', 'bulk'); var_dump($api->listDomains()); ?>
通过阅读 NameSilo API 文档 了解有关您正在进行的 API 调用的响应的更多信息
获取有关您的请求的更多信息
这些大多数都用于调试,但我保留它们,以防您觉得它们有用(或者如果您需要自己调试它)
// returns last HTTP code, or NULL (If no API requests have been made) $api->getHTTPCode(); // returns last HTTP body response, or NULL (If no API requests have been made) $api->getLastResult(); // returns last endpoint called, or NULL (If no API requests have been made) $api->getLastCall(); // returns last URL called, or NULL (If no API requests have been made) --WARNING:::: EXPOSES PRIVATE API KEY!!!! // NEVER USE IN PRODUCTION! $api->getLastURL();
提交 PR
显然,这里在代码方面内容不多。要提交PR,只需修复bug / 添加端点 / 做你想做的事情,然后打开PR并输入以下内容
- 你做了什么(添加了新的API端点someEndpoint)
- 我在哪里可以验证你的工作,如果有必要的话(https://www.namesilo.com/api-reference#cat/some-endpoint)
- 一个编程笑话(不必要,但幽默通常是好事)
- 你愿意分享的其他任何事情
获取支持
我将在一定程度上提供关于这个类别的支持。打开问题以获取支持。
如果你的问题看起来更适合NameSilo团队(如添加/更改端点等),请向他们提问。我只是创建了包装器,而不是实际的API
NameSilo支持可以在这里找到:https://www.namesilo.com/support/v2