greenreader9/namesilo-php-api

NameSilo API 的 PHP 封装

v1.2.1 2024-09-18 15:11 UTC

This package is auto-updated.

Last update: 2024-09-18 15:12:19 UTC


README

NameSilo API 的 PHP 封装

关于我

这个 PHP 类是一个 API 封装器,截至 2024 年 9 月支持 NameSilo 的所有当前功能(这其实是个谎言,除了 bidAuctions 调用外,其他所有功能都支持)

这个类最初是为私人使用而创建的,但现在已根据 MIT 许可证发布,供大家享用,因为开源很棒

话虽如此,它 应该 可以正常工作,但我不能保证。如果您发现任何错误,请通过 问题PR 来修复。

安装我

通过 Composer 安装

composer require greenreader9/namesilo-php-api

或者抓取 /src/NameSiloAPI.php 文件,这也行

使用我

  1. 安装我
  2. 初始化我
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

  1. 调用一个函数
$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. 只需不发送它。如果函数有 1 个可选参数,没有必需的参数,只需执行 $api->func()

  2. 将其设置为 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并输入以下内容

  1. 你做了什么(添加了新的API端点someEndpoint)
  2. 我在哪里可以验证你的工作,如果有必要的话(https://www.namesilo.com/api-reference#cat/some-endpoint
  3. 一个编程笑话(不必要,但幽默通常是好事)
  4. 你愿意分享的其他任何事情

获取支持

我将在一定程度上提供关于这个类别的支持。打开问题以获取支持。

如果你的问题看起来更适合NameSilo团队(如添加/更改端点等),请向他们提问。我只是创建了包装器,而不是实际的API

NameSilo支持可以在这里找到:https://www.namesilo.com/support/v2