tacman/nameapi-client-php

NameAPI Web服务的PHP客户端

6.0 2024-07-18 17:48 UTC

This package is auto-updated.

Last update: 2024-09-18 18:13:26 UTC


README

http://www.nameapi.org/ 的NameAPI Web服务的PHP客户端

您只需提供自己的API密钥即可发送请求,您可以从nameapi.org获取。

这个库简单地是从 https://github.com/mobilelocker/nameapi-client-php 分支出来的,后者又是原始库的分支,但原始库不支持PSR-4命名空间,这是composer 2所要求的。

库设置

composer require tacman/nameapi-client-php

功能测试

演示服务如何工作并确保它们正常工作的功能测试在 https://github.com/optimaize/nameapi-client-php-functionaltests 中,您可以查看代码,甚至可以使用您的API密钥和PHPUnit运行这些测试。

设置代码

首先,您需要包含一个单独的文件,即指向nameapi服务工厂的文件。

require_once('your/path/to/Org/NameApi/Client/Services/ServiceFactory.php');

然后,您需要一个Context,它解释了您的工作环境,类似于以下内容:

use Org\NameApi\Ontology\input\Context\Context;
use Org\NameApi\Ontology\input\Context\Priority;
$context = Context::builder()
    ->place('US')
    ->priority(Priority::REALTIME)
    ->build();

然后,您已经可以创建服务工厂,它为您提供访问所有nameapi服务的方法。

$serviceFactory = new ServiceFactory('your-api-key', $context);

发送ping

此代码向nameapi发送简单的ping以测试连接。

$ping = $serviceFactory->systemServices()->ping();
$pong = $ping->ping();

如果响应是'pong',则一切正常,您可以继续进行实际操作。

输入/输出

所有输入对象都带有构建器或良好的文档化的setter。服务返回的结果对象都有完整的文档化的getter。许多输入参数是可选的,这意味着您可以简单开始,然后根据需要添加更多。

在幕后,此服务API使用REST。但幸运的是,您无需担心任何接口细节,您只需使用提供的类即可。

人员输入对象

大多数服务接受一个'Person'作为输入。此人员包含一个名称,以及可选的更多数据,例如性别、出生日期等。名称可以是单个“全名”字符串,也可以由多个字段组成,例如给定名称、中间名称、姓氏。这个标准化的API使得以一致的方式使用不同的服务变得简单,并且在接受数据时非常方便。

创建简单人员看起来像这样

use Org\NameApi\Ontology\input\Entities\Person\NaturalInputPerson;
use Org\NameApi\Ontology\input\Entities\Person\Name\InputPersonName;
$inputPerson = NaturalInputPerson::builder()
    ->name(InputPersonName::westernBuilder()
        ->fullname( "John F. Kennedy" )
        ->build())
    ->build();

名称解析器

名称解析是将全名拆分成其组成部分的过程。

使用之前创建的$inputPerson

$personNameParser = $this->makeServiceFactory()->parserServices()->personNameParser();
$parseResult = $personNameParser->parse($inputPerson);
var_dump($parseResult);

名称性别化器

名称性别化是基于个人的名称来识别性别的过程。

使用之前创建的$inputPerson

$personGenderizer = $serviceFactory->genderizerServices()->personGenderizer();
$personGenderResult = $personGenderizer->assess($inputPerson);
echo $personGenderResult->getGender()->toString(); //will print 'MALE'

名称匹配器

名称匹配器比较名称和名称对,以发现是否可能是同一个人。

此服务接受2个人作为输入

$personMatcher = $serviceFactory->matcherServices()->personMatcher();
$inputPerson1 = NaturalInputPerson::builder()
    ->name(InputPersonName::westernBuilder()
        ->fullname( "John F. Kennedy" )
        ->build())
    ->build();
$inputPerson2 = NaturalInputPerson::builder()
    ->name(InputPersonName::westernBuilder()
        ->fullname( "Jack Kennedy" )
        ->build())
    ->build();
$personMatcherResult = $personMatcher->match($inputPerson1, $inputPerson2);
echo $personMatcherResult->getPersonMatchType()->toString(); //will print 'MATCHING'

名称格式化器

名称格式化器以所需的格式显示个人姓名。这包括顺序以及大小写。

$personNameFormatter = $serviceFactory->formatterServices()->personNameFormatter();
$inputPerson = NaturalInputPerson::builder()
    ->name(InputPersonName::westernBuilder()
        ->fullname( "john kennedy" )
        ->build())
    ->build();
$formatterResult = $personNameFormatter->format($inputPerson, new FormatterProperties());
echo $formatterResult->getFormatted(); //will print 'John Kennedy'

电子邮件名称解析器

电子邮件名称解析器从电子邮件地址中提取名称。

$emailNameParser = $serviceFactory->emailServices()->emailNameParser();
$result = $emailNameParser->parse("john.doe@example.com");
echo $result;

一次性电子邮件地址检测器

DEA-Detector将电子邮件地址与已知的“垃圾域名”列表(如mailinator.com)进行比对。

$deaDetector = $serviceFactory->emailServices()->disposableEmailAddressDetector();
$result = $deaDetector->isDisposable("abcdefgh@10minutemail.com");
echo $result->getDisposable()->toString()); //will print 'YES'

风险检测器

Risk-Detector检查人员输入中的所有数据,包括姓名、地址、出生日期、电子邮件地址和电话号码,以检查是否存在虚假和可疑数据。

$riskDetector = $serviceFactory->riskServices()->personRiskDetector();
$riskResult = $riskDetector->detect($inputPerson);
var_dump($riskResult);