Skip to content

floating-yuan/zego_server_assistant_php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

安装&使用

方式一(推荐):Composer Autoload,即使用composer的PSR-4自动加载机制实现加载

安装

  1. 拷贝文件包至项目根目录下的某个目录中,例如这里以/my_project/zego目录为例,其中/my_project/为项目根目录
  2. vim /my_project/composer.json加入psr-4自动加载配置
{
  ...
  "autoload": {
    "psr-4": {
      "ZEGO\\": "zego/src/ZEGO"
    }
  }
  ...
}
  1. 执行 composer dump-autoloadcomposer dump-autoload -o(生产环境适用) 或 composer update 命令,生成自动加载文件

使用
####普通token 生成demo

  • /my_project/xxx.php文件中使用
  • 普通token用于服务接口的简单权限验证的场景,payload字段可传空
require 'vendor/autoload.php';
use ZEGO\ZegoServerAssistant;
use ZEGO\ZegoErrorCodes;

$appId = 1;
$userId = 'demo';
$secret = 'fa94dd0f974cf2e293728a526b028271';
$payload = '';
$token = ZegoServerAssistant::generateToken04($appId,$userId,$secret,3600,$payload);
if( $token->code == ZegoErrorCodes::success ){
  print_r($token->token);
}

强验证token 生成demo

  • /my_project/xxx.php文件中使用
  • 强验证token用于对房间登录/推拉流权限需要进行强验证的场景,payload字段需要按照规格生成
require 'vendor/autoload.php';
use ZEGO\ZegoServerAssistant;
use ZEGO\ZegoErrorCodes;

//权限位定义
const PrivilegeKeyLogin   = 1; // 登录
const PrivilegeKeyPublish = 2; // 推流

//权限开关定义
const PrivilegeEnable     = 1; // 开启
const PrivilegeDisable    = 0; // 关闭

$appId = 1;
$userId = 'demo';
$roomId = "demo";
$secret = 'fa94dd0f974cf2e293728a526b028271';
$rtcRoomPayLoad = [
    'room_id' => $roomId, //房间id;用于对接口的房间id进行强验证
    'privilege' => [     //权限位开关列表;用于对接口的操作权限进行强验证
        PrivilegeKeyLogin => PrivilegeEnable,
        PrivilegeKeyPublish => PrivilegeDisable,
    ],
    'stream_id_list' => [] //流列表;用于对接口的流id进行强验证;允许为空,如果为空,则不对流id验证
];

$payload = json_encode($rtcRoomPayLoad);

$token = ZegoServerAssistant::generateToken04($appId, $userId, $secret, 3600, $payload);
if( $token->code == ZegoErrorCodes::success ){
  print_r($token);
}
方式二:Symfony Class Auto Loader 注册自动加载,适合在未使用composer的项目中使用此方式

安装

  1. 拷贝文件包至项目根目录下的某个目录中,例如这里以/my_project/zego目录为例,其中/my_project/为项目根目录

使用
####普通token 生成demo

  • /my_project/xxx.php文件中使用
  • 普通token用于服务接口的简单权限验证的场景,payload字段可传空
require 'vendor/autoload.php';
use ZEGO\ZegoServerAssistant;
use ZEGO\ZegoErrorCodes;

$appId = 1;
$userId = 'demo';
$secret = 'fa94dd0f974cf2e293728a526b028271';
$payload = '';
$token = ZegoServerAssistant::generateToken04($appId,$userId,$secret,3600,$payload);
if( $token->code == ZegoErrorCodes::success ){
  print_r($token->token);
}

强验证token 生成demo

  • /my_project/xxx.php文件中使用
  • 强验证token用于对房间登录/推拉流权限需要进行强验证的场景,payload字段需要按照规格生成
require 'vendor/autoload.php';
use ZEGO\ZegoServerAssistant;
use ZEGO\ZegoErrorCodes;

//权限位定义
const PrivilegeKeyLogin   = 1; // 登录
const PrivilegeKeyPublish = 2; // 推流

//权限开关定义
const PrivilegeEnable     = 1; // 开启
const PrivilegeDisable    = 0; // 关闭

$appId = 1;
$userId = 'demo';
$roomId = "demo";
$secret = 'fa94dd0f974cf2e293728a526b028271';
$rtcRoomPayLoad = [
    'room_id' => $roomId, //房间id;用于对接口的房间id进行强验证
    'privilege' => [     //权限位开关列表;用于对接口的操作权限进行强验证
        PrivilegeKeyLogin => PrivilegeEnable,
        PrivilegeKeyPublish => PrivilegeDisable,
    ],
    'stream_id_list' => [] //流列表;用于对接口的流id进行强验证;允许为空,如果为空,则不对流id验证
];

$payload = json_encode($rtcRoomPayLoad);

$token = ZegoServerAssistant::generateToken04($appId, $userId, $secret, 3600, $payload);
if( $token->code == ZegoErrorCodes::success ){
  print_r($token);
}

## 错误码说明

```php
namespace ZEGO;

class ZegoErrorCodes{
    const success                       = 0;  // 获取鉴权 token 成功
    const appIDInvalid                  = 1;  // 调用方法时传入 appID 参数错误
    const userIDInvalid                 = 3;  // 调用方法时传入 userID 参数错误
    const secretInvalid                 = 5;  // 调用方法时传入 secret 参数错误
    const effectiveTimeInSecondsInvalid = 6;  // 调用方法时传入 effectiveTimeInSeconds 参数错误
}

generateToken04 参数及返回值说明

    /**
     * 根据所提供的参数列表生成用于与即构服务端通信的鉴权
     *
     * @param integer $appId Zego派发的数字ID, 各个开发者的唯一标识
     * @param string $userId 用户 ID
     * @param string $secret 由即构提供的与 appId 对应的密钥,请妥善保管,切勿外泄
     * @param integer $effectiveTimeInSeconds token 的有效时长,单位:秒
     * @param string $payload 业务扩展字段,json串
     * @return ZegoAssistantToken 返回 token 内容,值为ZEGO\ZegoAssistantToken对象,在使用前,请检查对象code属性是否为 ZEGO\ZegoErrorCodes::success。实际 token 内容保存在 token 属性中
     */
    public static function generateToken04(int $appId, string $userId, string $secret, int $effectiveTimeInSeconds, string $payload )

返回值为ZEGO\ZegoAssistantToken对象:

namespace ZEGO;

class ZegoAssistantToken{
    public $code;
    public $message = '';
    public $token;
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages