VerifyMyContent SDK
Requires
- php: ^7.4|^8.0
- ext-json: *
- verifymy/php-sdk: ^v2.0.0
- verifymycontent/commons: ^v1.0.2
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-11 15:34:11 UTC
README
PHP SDK,用于使用VerifyMyContent服务(身份验证、内容审核和内容投诉)。
安装
composer require verifymycontent/sdk
入门
处理内容审核集成流程的主要类是 VerifyMyContent\VerifyMyContent
。它将抽象API调用中的HMAC生成。
启动身份验证
在VerifyMyContent\VerifyMyContent
中,使用createIdentityVerification
的VerifyMyContent\SDK\IdentityVerification\IdentityVerificationClient
抽象,传递一个VerifyMyContent\SDK\IdentityVerification\Entity\Requests\CreateIdentityVerificationRequest
并接收一个VerifyMyContent\SDK\IdentityVerification\Entity\Responses\CreateIdentityVerificationResponse
。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $response = $vmc->identityVerification->createIdentityVerification( new \VerifyMyContent\SDK\IdentityVerification\Entity\Requests\CreateIdentityVerificationRequest([ "customer" => [ "id" => "YOUR-CUSTOMER-UNIQUE-ID", "email" => "person@example.com", "phone" => "+4412345678" ], "redirect_uri" => "https://example.com/callback", "webhook" => "https://example.com/webhook", ]) ); // save $response->id if you want to save the verification of your customer // redirect user to check identity header("Location: {$response->redirect_uri}");
通过ID检索身份验证
检索特定的身份验证以获取当前状态。
- 将身份验证的
id
传递给VerifyMyContent\VerifyMyContent
中VerifyMyContent\SDK\IdentityVerification\IdentityVerificationClient
抽象的getIdentityVerification
方法。 - 接收一个
VerifyMyContent\SDK\IdentityVerification\Entity\Responses\GetIdentityVerificationResponse
。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $response = $vmc->identityVerification->getIdentityVerification("YOUR-IDENTITY-VERIFICATION-ID"); // Printing current status echo "Status: {$response->status}";
接收身份验证Webhook
当身份验证状态发生变化时,从VerifyMyContent接收webhook。
- 从VerifyMyContent接收一个包含
$_POST
数据的webhook,该数据可以使用VerifyMyContent\SDK\IdentityVerification\Entity\Requests\WebhookIdentityVerificationRequest
类解析。
<?php require(__DIR__ . "/vendor/autoload.php"); $data = json_decode(file_get_contents('php://input'), true); $webhook = new \VerifyMyContent\SDK\IdentityVerification\Entity\Requests\WebhookIdentityVerificationRequest($data); // Printing current status echo "Status: {$webhook->status} received from verification {$webhook->id}"; // This is how you can check if the identity verification is approved. if ($webhook->status === \VerifyMyContent\SDK\IdentityVerification\IdentityVerificationStatus::APPROVED) { // do your thing }
创建静态内容审核
在VerifyMyContent\VerifyMyContent
中,使用createStaticContentModeration
的VerifyMyContent\SDK\ContentModeration\ContentModerationClient
抽象,传递一个VerifyMyContent\SDK\ContentModeration\Entity\Requests\CreateStaticContentModerationRequest
并接收一个VerifyMyContent\SDK\ContentModeration\Entity\Responses\CreateStaticContentModerationResponse
。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $response = $vmc->contentModeration()->createStaticContentModeration([ "content" => [ "type" => "video", "external_id" => "YOUR-VIDEO-ID", "url" => "https://example.com/video.mp4", "title" => "Uploaded video title", "description" => "Uploaded video description", ], "webhook" => "https://example.com/webhook", "redirect_url" => "https://example.com/callback", "customer" => [ "id" => "YOUR-CUSTOMER-UNIQUE-ID", "email" => "person@example.com", "phone" => "+4412345678" ], "type" => "face-match", "rule" => "default", "faces_id" => ["ID"], "collection_id" => "YOUR-COLLECTION-ID", "participants" => [[ "id" => "YOUR-CUSTOMER-UNIQUE-ID", "email" => "person@example.com", "phone" => "+4412345678" ]] ]); // save $response->id if you want to call the moderation status endpoint later // redirect uploader to check identity header("Location: {$response->redirect_url}");
通过ID检索静态内容审核
检索特定的审核以获取当前状态。示例
- 接收一个
VerifyMyContent\SDK\ContentModeration\Entity\Responses\GetStaticContentModerationResponse
。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $response = $vmc->contentModeration()->getStaticContentModeration("YOUR-CONTENT-MODERATION-ID"); // Printing current status echo "Status: {$response->status}";
接收静态内容审核Webhook
- 从VerifyMyContent接收一个包含
$_POST
数据的webhook,该数据可以使用VerifyMyContent\SDK\ContentModeration\Entity\Requests\WebhookStaticContentModerationRequest
类解析。
<?php require(__DIR__ . "/vendor/autoload.php"); $data = json_decode(file_get_contents('php://input'), true); $webhook = new \VerifyMyContent\SDK\ContentModeration\Entity\Requests\WebhookStaticContentModerationRequest($data); // Printing current status echo "Status: {$webhook->status} received from static content {$webhook->id}"; // This is how you can check if the moderation was approved. if ($webhook->status === \VerifyMyContent\SDK\ContentModeration\ContentModerationStatus::STATIC_APPROVED) { // do your thing }
实时内容
要审核实时流广播,您需要使用以下描述的不同API。
创建实时内容审核
在VerifyMyContent\VerifyMyContent
中,使用createLiveContentModeration
的VerifyMyContent\SDK\ContentModeration\ContentModerationClient
抽象,传递一个VerifyMyContent\SDK\ContentModeration\Entity\Requests\CreateLiveContentModerationRequest
并接收一个VerifyMyContent\SDK\ContentModeration\Entity\Responses\CreateLiveContentModerationResponse
。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $response = $vmc->contentModeration()->createLiveContentModeration([ "external_id" => "YOUR-LIVESTREAM-ID", "embed_url" => "https://example.com/live/", "title" => "Live stream title", "description" => "Live stream description", "webhook" => "https://example.com/webhook", "stream" => [ "protocol" => "webrtc", "url" => "https://example.com/live/", ], "customer" => [ "id" => "YOUR-CUSTOMER-UNIQUE-ID", "email" => "person@example.com", "phone" => "+4412345678" ], "type" => "face-match", "rule" => "default", "faces_id" => ["ID"], "collection_id" => "YOUR-COLLECTION-ID" ]); // save $response->id to start live stream later // redirect uploader to check identity header("Location: {$response->login_url}");
启动创建的实时内容审核
当您收到状态为Authorised
的webhook时,这意味着您现在可以开始广播实时流,然后可以使用startLiveContentModeration
方法来触发审核。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $vmc->contentModeration()->startLiveContentModeration("YOUR-CONTENT-MODERATION-ID"); // that's all folks!
接收实时内容审核Webhook
- 从VerifyMyContent接收一个包含
$_POST
数据的webhook,该数据可以使用VerifyMyContent\SDK\ContentModeration\Entity\Requests\WebhookLiveContentModerationRequest
类解析。
<?php require(__DIR__ . "/vendor/autoload.php"); $data = json_decode(file_get_contents('php://input'), true); $webhook = new \VerifyMyContent\SDK\ContentModeration\Entity\Requests\WebhookLiveContentModerationRequest($data); // Printing current status echo "Status: {$webhook->status} received from live content {$webhook->id}"; // This is how you can check if the live stream is authorized. if ($webhook->status === \VerifyMyContent\SDK\ContentModeration\ContentModerationStatus::LIVE_AUTHORIZED // do your thing }
更新实时流审核规则
此端点允许您更新特定实时流的审核规则。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $vmc->contentModeration()->changeLiveContentRule("YOUR-CONTENT-MODERATION-ID");
暂停实时流审核
此端点允许您暂停特定实时流的审核。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $vmc->contentModeration()->pauseLivestream("YOUR-CONTENT-MODERATION-ID");
恢复实时流审核
此端点允许您恢复特定实时流的审核。
<?php require(__DIR__ . "/vendor/autoload.php"); $vmc = new VerifyMyContent\VerifyMyContent(getenv('VMC_API_KEY'), getenv('VMC_API_SECRET')); //$vmc->useSandbox(); $vmc->contentModeration()->resumeLivestream("YOUR-CONTENT-MODERATION-ID");