您现在的位置是: Home> 学无止境> 企业微信> 企业微信
企业微信会话内容存档php的sdk
张伟江2020-12-25 17:54【企业微信】7186人已围观
简介微信(手机同号):13665994204,对接企业微信的会话内容存档,为企业提供数据解析,和结构化呈现服务,实现企业对员工聊天记录的可查,可控。有效防止 , 监管员工不合规或有违企业利益的操作。
1、环境依赖
仅Linux环境
PHP VERSION >= 7.0
openssl扩展
Thinkphp5
2、环境安装及步骤
1、下载企业微信SDK包
2、将压缩包解压到tp5项目的extend目录下
3、执行以下脚本安装php扩展(需根据自己项目需求更改以下脚本变量值)
#!/bin/bash
# lnmp下安装php的wxwork_finance_sdk扩展
# author ctocode-zwj <982215226@qq.com>
# php的安装目录
INSATLL_PATH_PATH="/alidata/server/php"
# workwx的php扩展的目录(项目TP5的目录在/alidata/www/seo下,workwx扩展放extend下)
WXWORK_FINANCE_PATH="/alidata/www/seo/extend/workwx/library/src/Api/Struct/Msgaudit"
# php扩展的c语言sdk目录
WXWORK_FINANCE_C_SDK_PATH="${WXWORK_FINANCE_PATH}/c_sdk"
# 进入workwx的php扩展的目录
cd $WXWORK_FINANCE_PATH
# 通过phpize可以建立php的外挂模块
$INSATLL_PATH_PATH/bin/phpize
# 配置编译环境
./configure --with-php-config=$INSATLL_PATH_PATH
/bin/php-config --with-wxwork-finance-sdk="${WXWORK_FINANCE_C_SDK_PATH}" # 编译和安装
make && make install
# php.ini 增加 extension=wxwork_finance_sdk.so
echo extension=wxwork_finance_sdk.so >> $INSATLL_PATH_PATH/etc/php.ini # 重启php-fpm
service php-fpm restart
3、复制以下代码到application/index/controller下
<?php
namespace app\index\controller;
use app\common\controller\Frontend;
class Workwx extends Frontend
{
protected $noNeedLogin = '*';
protected $noNeedRight = '*';
protected $layout = '';
public function index()
{
// 企业ID
$corpId = "w****";
// 会话内容存档Secret
$secret = "****";
// 消息加密私钥
$privateKey = "-----BEGIN PRIVATE KEY-----
***
-----END PRIVATE KEY-----";
$msgaudit = include_once(EXTEND_PATH . 'workwx/library/src/Api/Struct/Msgaudit/Msgaudit.php');
$msgaudit->call($corpId, $secret, $privateKey);
// 从第几条取几条数据出来
$chatList = $msgaudit->getChatData(0, 20);
$workwx_name = 'hrhgtest';
$dir = ROOT_PATH . "public/uploads/workwx/{$workwx_name}/";
$domain = $this->request->domain();
foreach($chatList as &$val){
if(isset($val['msgtype'])){
$path = $dir . $val['msgtype'].'/'.date('Ym').'/'.date('d').'/';
if(!is_dir($path)){
$flag = mkdir($path,0777,true);
}
switch ($val['msgtype']) {
case 'image':
// 图片
$sdkFileId = $val[$val['msgtype']]["sdkfileid"];
$val[$val['msgtype']]['mediaUrl'] = $domain. "/uploads/workwx/{$workwx_name}/{$val['msgtype']}/".date('Ym')."/".date('d')."/{$val['msgid']}.png";
$filename = "{$path}{$val['msgid']}.png";
break;
case 'emotion':
// 表情
$sdkFileId = $val[$val['msgtype']]["sdkfileid"];
if($val['emotion']['type']==1){
$fileext = 'gif';
}else{
$fileext = 'png';
}
$val[$val['msgtype']]['mediaUrl'] = $domain. "/uploads/workwx/{$workwx_name}/{$val['msgtype']}/".date('Ym')."/".date('d')."/{$val['msgid']}.{$fileext}";
$filename = "{$path}{$val['msgid']}.{$fileext}";
break;
case 'voice':
// 声音
$sdkFileId = $val['voice']["sdkfileid"];
$val[$val['msgtype']]['mediaUrl'] = $domain. "/uploads/workwx/{$workwx_name}/{$val['msgtype']}/".date('Ym')."/".date('d')."/{$val['msgid']}.amr";
$filename = "{$path}{$val['msgid']}.amr";
break;
case 'video':
// 视频
$sdkFileId = $val['video']["sdkfileid"];
$val[$val['msgtype']]['mediaUrl'] = $domain."/uploads/workwx/{$workwx_name}/{$val['msgtype']}/".date('Ym')."/".date('d')."/{$val['msgid']}.mp4";
$filename = "{$path}{$val['msgid']}.mp4";
break;
case 'file':
// 文件
$sdkFileId = $val['file']["sdkfileid"];
$val[$val['msgtype']]['mediaUrl'] = $domain. "/uploads/workwx/{$workwx_name}/{$val['msgtype']}/".date('Ym')."/".date('d')."/{$val['msgid']}.{$val['file']['fileext']}";
$filename = "{$path}{$val['msgid']}.{$val['file']['fileext']}";
break;
default:
break;
}
if(isset($filename) && !file_exists($filename)){
$msgaudit->downloadMedia($sdkFileId, $filename);
}
}
}
unset($val);
dump($chatList);
}
}
4、浏览器url上访问
http://www.xxx.com/index/workwx/index
企业微信SCRM有消息存档、权限管理、事件溯源、员工行为提醒等功能,如有上述功能需求欢迎大家扫描下方二维码申请功能免费体验~
- END -
Prev:企业微信如何区分内部群和外部群?
Next:企业微信会话存档接口文档
发表评论 取消回复