一、添加要群发的图文信息,显示到页面上
public function addnews(){
if(IS_GET){
$this->display();
}else{
$mp=$this->mp;
$mp_id=$mp['id'];
$data=I('post.data');
foreach ($data as $key => &$value) {
$value['mp_id'] = $mp_id;
$value['create_time'] = time();
if($key==0){
$news_id = M('media_news')->add($value);
// print_r($news_id);
// exit;
}
$value['news_id'] = $news_id;
M('media_news_list')->add($value);
}
$this->ajaxReturn(array('error'=>0,'msg'=>'上传成功'));
}
}
public function newslist(){
$mp=$this->mp;
$where['mp_id'] = $mp['id'];
$data = M('media_news')->where($where)->select();
foreach ($data as &$value) {
$news_id = $value['news_id'];
$item = M('media_news_list')->where("news_id=$news_id")->select();
$value['list'] = $item;
}
$this->assign('data',$data);
$this->display();
}
上传成功返回media_id
二、上传图文信息
从上一步中得到news_id,根据news_id来查询数据库media_news_list的数据,再遍历数组,查看thumb_media_id是否为空,上传图片(这里用的接口是上传永久图片),获取到media_id,将数据存到media_news_list数据库中。
public function uploadMediaNews($news_id){
$where['news_id'] = $news_id;
$data = M('media_news_list')->where($where)->field('id,thumb_media_id,cover')->select();
foreach ($data as $key => $value) {
if(empty($ret['thumb_media_id'])){
$ret = $this->uploadimg($value['cover']);
if(is_array($ret)){
M('media_news_list')->where("id={$value['id']}")->setField('thumb_media_id',$ret['media_id']);
}else{
echo $ret;
exit;
}
}
}
$data = M('media_news_list')->field('thumb_media_id,author,title,content_source_url,content,digest,show_cover_pic')->where($where)->order('id')->select();
// print_r($data);
// exit;
include APP_PATH . 'LaneWeChat/lanewechat.php';
$ret = \LaneWeChat\Core\AdvancedBroadcast::uploadNews($data);
if(isset($ret['media_id'])){
$arr['media_id']=$ret['media_id'];
$arr['status_type']=1;
M('media_news')->where($where)->save($arr);
echo "上传成功";
}else{
echo "上传失败" . json_encode($ret);
}
}
private function uploadimg($url){
$file = realpath('.' . $url);
$access_token = getAccess_token();
include APP_PATH . 'LaneWeChat/lanewechat.php';
$api = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$access_token&type=image";
$data['media'] = Curl::addFile($file);
$ret = Curl::callWebServer($api,$data,'post',true,false);
if(isset($ret['media_id'])){
return array('media_id'=>$ret['media_id']);
}else{
return '本地图片上传失败' . json_encode($ret);
}
}
这里用到的数据库: