VerifyMyContent SDK

v2.4.0 2024-06-11 14:53 UTC

README

PHP SDK,用于使用VerifyMyContent服务(身份验证、内容审核和内容投诉)。

安装

composer require verifymycontent/sdk

入门

处理内容审核集成流程的主要类是 VerifyMyContent\VerifyMyContent。它将抽象API调用中的HMAC生成。

启动身份验证

VerifyMyContent\VerifyMyContent中,使用createIdentityVerificationVerifyMyContent\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\VerifyMyContentVerifyMyContent\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中,使用createStaticContentModerationVerifyMyContent\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中,使用createLiveContentModerationVerifyMyContent\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");