dustindoiron / photodna-client
A MSFT PhotoDNA client, written in PHP
Installs: 1 183
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- guzzlehttp/guzzle: ^7.8
- guzzlehttp/psr7: ^2.6
README
A basic Match and Report API client for Microsoft's PhotoDNA service. You should have a valid PhotoDNA Moderation account and an NCMEC contact prior to using this client.
Usage: Create a client...
$configuration = new PhotoDNA\Configuration( apiKey: 'apiKey', endpoint: 'https://api.microsoftmoderator.com/photodna/v1.0/', // default ncmecUsername: 'ncmecUsername', ncmecPassword: 'ncmecPassword' ); $client = new PhotoDNA\Client($configuration);
Create a resource...
$imageFile = new PhotoDNA\Resource\ImageFile('/path/to/location'); $imageUrl = new PhotoDNA\Resource\ImageLocation('https://url.com/file.png'); $result = $client->match($imageFile); // or $result = $client->match($imageLocation); // enhanced matching $result = $client->match($imageFile, true);
Report a resource...
// Fluently set $violation = new PhotoDNA\Resource\Violation() ->set('IncidentTime', '9/10/2014 9:08:14 PM'); ->set('ViolationContentCollection', [ 'Name' => $imageFile->getFilename(), 'Value' => $imageFile->getBase64(), 'UploadIpAddress' => '127.0.0.1', // etc ]); $reporter = new PhotoDNA\Resource\Reporter() ->set('OrgName', 'ExampleOrgName'); ->set('ReporterName', 'Example Reporter') ->set('ReporterEmail', 'test@example.com'); $reportee = new PhotoDNA\Resource\Reportee() ->set('ReporteeName', 'Reportee Name') ->set('ReporteeIPAddress', '127.0.0.1'); $response = $client->report($reportee, $reporter, $violation, isTest: true);