您现在的位置是: Home> 学无止境> 企业微信> 企业微信

企业微信会话内容存档php的sdk

张伟江2020-12-25 17:54企业微信3535人已围观

简介微信(手机同号):13665994204,对接企业微信的会话内容存档,为企业提供数据解析,和结构化呈现服务,实现企业对员工聊天记录的可查,可控。有效防止 , 监管员工不合规或有违企业利益的操作。

1、环境依赖

仅Linux环境
PHP VERSION >= 7.0
openssl扩展

Thinkphp5

2、环境安装及步骤

1、下载企业微信SDK包:workwx扩展包

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=/alidata/server/php/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 -

点赞(3) 打赏

文章评论 共有 0 条评论

暂无评论

站点信息

  • 建站时间:2018年10月24日
  • 网站程序:fastadmin
  • 文章统计218篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信号:zwj982215226

打赏本站

  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!
  • 微信扫码:你说多少就多少~
  • 支付宝扫码:你说多少就多少~

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部