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


以上就是关于php如何编译使用会话存档接口的解答了,希望对你有所帮助,获取更多企微运营干货,请关注北鲲官网。北鲲SCRM基于企业微信开发了众多运营功能,比如社群营销、渠道活码,营销素材,群发助手,会话存档等功能。如有上述功能需求欢迎大家扫描下方二维码申请功能免费体验~

- END -


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部