optimaize / nameapi-client-php
NameAPI Web服务的PHP客户端
Requires
- php: >=5.3.0
- ext-curl: *
- ext-json: *
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);