本文将引导通过服务器端代码请求微吼云 API,创建文档 document_id、发起文档所需要的频道 channel_id 和具有文档操作权限的 access_token

获取 app_id 和 secret_key

微吼云 API 使用 app_id 来标识应用,使用 secret_key 来作为双方通讯的传输秘钥,两者为使用微吼云 API 的必要参数。

点击这里 查看如何获取 app_idsecret_key

PHP代码实现

引入公共代码

我们对调用 API 过程中一些公用代码做了简单封装,作为工具库,您可以 点击这里 获取。然后在代码中引用。

/**
 * 引入公共代码
 */
include_once("vhall_paas.php");

本文后面的 PHP 示例代码将以此工具库为基础。

运行服务端代码

当微吼云代码工具库引入到项目中后,您可以开始运行下列 API 调用代码来获取文档 document_id和具有文档操作权限的 access_token

创建文档

注意:

  1. 请求参数中,文件类型的键值不需要添加到签名运算中,详情见 签名机制
  2. 上传的文件需要让PHP进程具有访问权限,否则无法完成请求。
// 引入公共代码
include 'vhall_paas.php';

/**
 * 初始化应用&秘钥信息
 * 获取方式 微吼云控制台 -> 应用 -> 设置 -> 应用信息
 * http://www.vhallyun.com/console/app/index
 */
VhallPaas::$app_id = '';
VhallPaas::$secret_key = '';

// 创建文档接口请求地址
$createDocumentAddress = 'api.yun.vhall.com/api/v1/document/create';

// 创建文档参数
$createDocumentParams = [];

// 加载公共参数&运算签名
$createDocumentParams = VhallPaas::createRealParam($createDocumentParams);

// 添加上传文档文件
$createDocumentParams['document'] = new CURLFile("number.pptx");

// 创建文档
try {
    $result = VhallPaas::request($createDocumentAddress, $createDocumentParams);
    $documentId = $result['document_id'];
} catch (Exception $e) {
    exit("请求发生错误 错误信息为 {$e->getMessage()} . 错误码为 {$e->getCode()}");
}

var_dump($documentId);

创建频道

/**
 * 通过接口完成聊天准备
 * 创建频道API接口文档 link
 * 生成accessToken link
 */

// 引用微吼云PHP代码工具库
include 'vhall_paas.php';

/**
 * 初始化应用&秘钥信息
 * 获取方式 微吼云控制台 -> 应用 -> 设置 -> 应用信息
 * http://www.vhallyun.com/console/app/index
 */
VhallPaas::$app_id = '';
VhallPaas::$secret_key = '';

// 创建房间接口请求地址
$createChannelAddress = 'api.yun.vhall.com/api/v1/channel/create';

// 创建频道参数
$createChannelParams = [];

// 加载公共参数&运算签名
$createChannelParams = VhallPaas::createRealParam($createChannelParams);

// 创建频道
try {
    $result = VhallPaas::request($createChannelAddress, $createChannelParams);
    $channelId = $result['channel_id'];
} catch (Exception $e) {
    exit("请求发生错误 错误信息为 {$e->getMessage()} . 错误码为 {$e->getCode()}");
}

var_dump($channelId);

获取具有文档操作权限的 access_token

注意:

  1. 运行下面代码,需要您先获取到频道 channel_id , 详情见上一步。
  2. 文档操作需要控制的权限为,发起文档所在的频道,即 channel_id。
// 引入公共代码
include 'vhall_paas.php';

/**
 * 初始化应用&秘钥信息
 * 获取方式 微吼云控制台 -> 应用 -> 设置 -> 应用信息
 * http://www.vhallyun.com/console/app/index
 */
VhallPaas::$app_id = '';
VhallPaas::$secret_key = '';

// 生成AccessToken接口请求地址
$accessTokenAddress = 'api.yun.vhall.com/api/v1/base/create-access-token';

/**
 * 生成 AccessToken 参数
 * AccessToken 为 SDK 中鉴别用户权限使用,针对不同的服务需要不同的参数来生成 AccessToken
 * 当前例子需要文档操作权限,所以权限位使用的 operate_document
 * 您可以通过阅读 www.vhallyun.com/docs/show/1013 来获取不同权限的 AccessToken 生成方式
 */
$createAccessTokenParams = [
    // 第三放用户ID,根据实际情况编写 (这里使用当前时间)
    'third_party_user_id' => 'vhall_paas_test_' . time(),
    // 过期时间,最大时间为一天,默认一天 (这里使用10小时做例子)
    'expire_time' => date("Y-m-d H:i:s", time() + (10 * 3600)),
    // 权限设定 (频道 channel_id 通过上一步 获取频道 channel_id 得到)
    'operate_document' => "ch_f82xxxx"
];

// 加载公共参数&运算签名
$createAccessTokenParams = VhallPaas::createRealParam($createAccessTokenParams);

// 获取accessToken
try {
    $result = VhallPaas::request($accessTokenAddress, $createAccessTokenParams);
    $accessToken = $result['access_token'];
} catch (Exception $e) {
    exit("请求发生错误 错误信息为 {$e->getMessage()} . 错误码为 {$e->getCode()}");
}

var_dump($accessToken);

参考链接

完成本页的步骤后,您可能需要阅读以下文档。