optimaize/nameapi-client-php

NameAPI Web服务的PHP客户端

5.3.0-rc4 2017-11-15 09:33 UTC

This package is not auto-updated.

Last update: 2024-09-20 06:56:20 UTC


README

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

发送请求所需的所有内容就是您的自己的API密钥,您可以从nameapi.org获取。

库设置

建议使用Composer。在https://github.com/optimaize/nameapi-client-php-example-composer的项目中展示了如何进行此操作。

您可以从GitHub项目下载源代码并将其用于您的代码。或者您可以直接从该GitHub项目检出。目前没有提供phar文件。

唯一的要求是php_curl扩展已启用。

功能测试

https://github.com/optimaize/nameapi-client-php-functionaltests中,有功能测试演示了服务的工作方式以及它们是否正常工作,您可以看到代码,甚至可以使用您的API密钥和PHPUnit运行这些测试。

设置代码

首先,您需要包含一个文件,即nameapi服务工厂的文件

require_once('your/path/to/org/nameapi/client/services/ServiceFactory.php');

然后,您需要一个上下文来解释您的运行环境,例如

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',则一切正常,您可以继续进行实际操作。

输入/输出

所有输入对象都带有构建器或文档齐全的设置器。服务返回的结果对象都具有完全文档化的获取器。许多输入参数是可选的 - 这意味着您可以从简单开始,然后根据需要添加更多。

幕后,此服务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'

风险检测器

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

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