云通讯 添加群组

群组和双向回呼是一个级别的 应为他们都是属于子账户的操作 所以 他们的子帐号鉴权信息验证是一样

在sdk包里添加

/**
   添加组  
    */
      function CreateGroup($Group)
      {   
        //子帐号鉴权信息验证,对必选参数进行判空。
        $auth=$this->subAuth();
        if($auth!=""){
            return $auth;
        }
        // 拼接请求包体 
        if($this->BodyType=="json"){
           $body= "{'from':'$from','to':'$to','customerSerNum':'$customerSerNum','fromSerNum':'$fromSerNum','promptTone':'$promptTone'}";
        }else{
           $body= "<Request>
  <name>$Group</name>
  <type>0</type>
  <permission>0</permission>
  <declared>云通讯技术交流</declared>
</Request> ";
        }
        $this->showlog("request body = ".$body);
        // 大写的sig参数  
        $sig =  strtoupper(md5($this->SubAccountSid . $this->SubAccountToken . $this->Batch));
        // 生成请求URL
        $url="https://$this->ServerIP:$this->ServerPort/$this->SoftVersion/SubAccounts/$this->SubAccountSid/Group/CreateGroup?sig=$sig";
        $this->showlog("request url = ".$url);
        // 生成授权:子帐号Id + 英文冒号 + 时间戳 
        $authen=base64_encode($this->SubAccountSid . ":" . $this->Batch);
        // 生成包头 
        $header = array("Accept:application/$this->BodyType","Content-Type:application/$this->BodyType;charset=utf-8","Authorization:$authen");
        // 发请求
        $result = $this->curl_post($url,$body,$header);
        $this->showlog("response body = ".$result);
        if($this->BodyType=="json"){//JSON格式
           $datas=json_decode($result); 
        }else{ //xml格式
           $datas = simplexml_load_string(trim($result," \t\n\r"));
        }
      //  if($datas == FALSE){
//            $datas = new stdClass();
//            $datas->statusCode = '172003';
//            $datas->statusMsg = '返回包体错误'; 
//        }
        return $datas;
    }

再自己新建一个调用文件,我起的名字叫做CreateGroup.php

<?php
/*
 *  Copyright (c) 2014 The CCP project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a Beijing Speedtong Information Technology Co.,Ltd license
 *  that can be found in the LICENSE file in the root of the web site.
 *
 *   http://www.yuntongxun.com
 *
 *  An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

include_once("../SDK/CCPRestSDK.php");

//子帐号
$subAccountSid= 'f8d6accb8da811e4823dac853d9f54f2';

//子帐号Token
$subAccountToken= '0b9db4c881d30a5e6c098f735797ec68';

//VoIP帐号
$voIPAccount= '84121800000047';

//VoIP密码
$voIPPassword= 'dWRm3ZE6';

//应用Id
$appId='aaf98f894a70a61d014a8413a5790c04';

//请求地址,格式如下,不需要写https://
$serverIP='sandboxapp.cloopen.com';

//请求端口 
$serverPort='8883';

//REST版本号
$softVersion='2013-12-26';

/**
 * 双向回呼
 * @param from 主叫电话号码
 * @param to 被叫电话号码
 * @param customerSerNum 被叫侧显示的客服号码  
 * @param fromSerNum 主叫侧显示的号码
 * @param promptTone 自定义回拨提示音    
 */
function CreateGroup($Group){
        // 初始化REST SDK
        global $appId,$subAccountSid,$subAccountToken,$voIPAccount,$voIPPassword,$serverIP,$serverPort,$softVersion;
        $rest = new REST($serverIP,$serverPort,$softVersion);
        $rest->setSubAccount($subAccountSid,$subAccountToken,$voIPAccount,$voIPPassword);
        $rest->setAppId($appId);
    
        // 调用接口
    echo "Try to create a group , $Group <br/>";
    $result = $rest->CreateGroup($Group);
    if($result == NULL ) {
        echo "result error!";
        break;
    }
    if($result->statusCode!=0) {
        echo "error code :" . $result->statusCode . "<br/>";
        echo "error msg :" . $result->statusMsg . "<br>";
        //TODO 添加错误处理逻辑
    }else {
        echo "create $Group success<br/>";
        // 获取返回信息
        //$subaccount = $result->SubAccount;

 echo "statusCode:".$result->statusCode."<br/>";
 echo "groupId:".$result->groupId."<br/>";

//echo "statusCode:".$subaccount->statusCode."<br/>";
//echo "groupId:".$subaccount->groupId."<br/>";

        //echo "subAccountid:".$subaccount->subAccountSid."<br/>";
        //echo "subToken:".$subaccount->subToken."<br/>";
        //echo "dateCreated:".$subaccount->dateCreated."<br/>";
        //echo "voipAccount:".$subaccount->voipAccount."<br/>";
        //echo "voipPwd:".$subaccount->voipPwd."<br/>";
        //TODO 把云平台子帐号信息存储在您的服务器上.
        //TODO 添加成功处理逻辑 
    }      
}

//Demo调用     
CreateGroup("123");
//createSubAccount("子帐号名称");
?>

尽量留下原来例子的语法,便于及时的参考

效果图

重点就是鉴权的验证,子账户当然不能和主账号混为一谈。

posted @ 2014-12-27 20:47  fleam  阅读(586)  评论(0编辑  收藏  举报