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 -
发表评论 取消回复