coviu/coviu-sdk

一个简单的库,用于使用 Coviu API。

1.1.1 2016-12-19 18:47 UTC

README

Coviu 提供了一个基于会话的 API,用于创建和限制对 coviu 通话的访问。暴露的核心概念包括

  • 会话:在指定时间发生的 coviu 通话,涉及两个或更多方,并具有有限的时间。
  • 参与者:可能参与 coviu 通话的用户。

参与者通过在他们的浏览器或移动应用中跟随一个 会话链接 加入通话。该 会话链接 识别参与者,包括他们的姓名、可选的头像以及重要的 角色。因此,为每个加入通话的人分配一个不同的 会话链接,即为他们创建一个独特的 参与者,非常重要。参与者的 角色 确定了该用户是否可以直接访问通话,或者是否需要通过现有参与者 允许进入

coviu-php-sdk 通过方便的 PHP 库公开了此功能。

有关如何使用 SDK 的示例,请参阅 https://github.com/coviu/coviu-api-php-demo。还可以查看 WordPress 插件 https://github.com/coviu/coviu-video-calls,它提供了更详细的使用说明。

安装

composer require coviu/coviu-sdk

如果您在应用程序中不使用 composer,仍然可以运行上述命令,这将创建一个 vendor 目录。然后将 vendor 目录提交到您的代码库中。您可以从 https://getcomposer.org.cn/download/ 获取 composer。您可以在 https://packagist.org.cn/packages/coviu/coviu-sdk 查看Coviu的composer包。

如果您想获取包含 vendor 目录的完整 tarball,请联系 support@coviu.com

快速入门

通过传递您的 API 密钥和密钥密钥来设置 SDK

require_once __DIR__.'/vendor/autoload.php';
use coviu\Api\Coviu;

$api_key = 'my_api_key_from_coviu.com';
$api_key_secret = 'my_api_key_secret';

$coviu = new Coviu('api_key', 'key_secret');

为未来安排一个会话。

date_default_timezone_set('GMT');

$session = array(
  'session_name' => 'A test session with Dr. Who',
  'start_time' => (new \DateTime())->format(\DateTime::ATOM),
  'end_time' => (new \DateTime())->modify('+1 hour')->format(\DateTime::ATOM),
  'picture' => 'http://www.fillmurray.com/200/300'
);

$session = $coviu->sessions->createSession($session);
var_dump($session);

示例输出

array(8) {
  ["team_id"]=>
  string(36) "bc5f47f1-f990-4d4d-a332-d3aa27ce6b76"
  ["client_id"]=>
  string(36) "440ee0f6-f99a-4515-ad15-da67dc29b0fc"
  ["participants"]=>
  array(0) {
  }
  ["session_id"]=>
  string(36) "6a157415-55cd-45a4-a82f-cd78b52e67b3"
  ["session_name"]=>
  string(27) "A test session with Dr. Who"
  ["start_time"]=>
  string(24) "2016-06-18T12:37:59.000Z"
  ["end_time"]=>
  string(24) "2016-06-18T13:37:59.000Z"
  ["picture"]=>
  string(33) "http://www.fillmurray.com/200/300"
}

$coviu->sessions->* 是一组可以运行在 API 上的请求构建函数。

现在可以向会话添加参与者

$host = array(
  'display_name' => 'Dr. Who',
  'role' => 'host', // or 'guest'
  'picture' => 'http://fillmurray.com/200/300',
  'state' => 'test-state'
);

$participant = $coviu->sessions->addParticipant($session['session_id'], $host);
var_dump($participant);

示例输出

array(8) {
  ["client_id"]=>
  string(36) "440ee0f6-f99a-4515-ad15-da67dc29b0fc"
  ["display_name"]=>
  string(7) "Dr. Who"
  ["entry_url"]=>
  string(62) "https://coviu.com/session/af1f3606-dfbf-4728-b3ca-8f099ca9024a"
  ["participant_id"]=>
  string(36) "af1f3606-dfbf-4728-b3ca-8f099ca9024a"
  ["picture"]=>
  string(29) "http://fillmurray.com/200/300"
  ["role"]=>
  string(4) "HOST"
  ["session_id"]=>
  string(36) "6de7f062-f6db-4253-93b3-8f45445ce2d9"
  ["state"]=>
  string(10) "test-state"
}

请注意新创建的参与者的 entry_url。在 start_timeend_time(会话活跃期间)之间在浏览器或 coviu 移动应用中遵循此 URL,将使参与者加入会话,假设提供的角色和身份。

现在我们可以读取整个会话结构

$sessions = $coviu->sessions->getSessions();

var_dump($sessions);

var_dump($coviu->$sessions->getSession($session['session_id']));

示例输出

array(8) {
  ["team_id"]=>
  string(36) "bc5f47f1-f990-4d4d-a332-d3aa27ce6b76"
  ["client_id"]=>
  string(36) "440ee0f6-f99a-4515-ad15-da67dc29b0fc"
  ["participants"]=>
  array(1) {
    [0]=>
    array(8) {
      ["client_id"]=>
      string(36) "440ee0f6-f99a-4515-ad15-da67dc29b0fc"
      ["display_name"]=>
      string(7) "Dr. Who"
      ["entry_url"]=>
      string(62) "https://coviu.com/session/15142b66-7e26-4c49-a232-bc4aa1126aff"
      ["participant_id"]=>
      string(36) "15142b66-7e26-4c49-a232-bc4aa1126aff"
      ["picture"]=>
      string(29) "http://fillmurray.com/200/300"
      ["role"]=>
      string(4) "HOST"
      ["session_id"]=>
      string(36) "7ec15ff3-87f9-4ec9-9484-6029d5da56a6"
      ["state"]=>
      string(10) "test-state"
    }
  }
  ["session_id"]=>
  string(36) "7ec15ff3-87f9-4ec9-9484-6029d5da56a6"
  ["session_name"]=>
  string(27) "A test session with Dr. Who"
  ["start_time"]=>
  string(24) "2016-06-19T09:32:26.000Z"
  ["end_time"]=>
  string(24) "2016-06-19T10:32:26.000Z"
  ["picture"]=>
  string(33) "http://www.fillmurray.com/200/300"
}

在 /src/SessionApi.php 提供了完整的 API 文档和 API 源代码,用于 coviu-sdk-api npm 模块。

OAuth2

Coviu 实现了 OAuth2 授权码流 https://tools.ietf.org/html/rfc6749#section-4.1。Coviu 要求您在 API 团队账户的“应用程序”部分预先注册您的 redirect_url。一旦用户返回授权码,您可以使用 authorizationCode 通过使用它来恢复访问令牌和刷新令牌。

$client = new Coviu($api_key, $key_secret);
$grant = $client->authorizationCode($code);

// Now create a client that acts on behalf of the user
$client2 = new Coviu($api_key, $key_secret, $grant);

// Get the team the user authorized you to access
$res2 = $client2->user-getAuthorizedTeam();

// Get that user's scheduled sessions
$res = $client2->sessions->getSessions();