微信開發——同步粉絲、群發訊息
同步粉絲
首先我們先建立一個粉絲的控制器,在控制器去寫一個方法,注意要與前臺頁面連線起來,程式碼如下:
public function sycfriends(){
$mp = $this->mp;
$where['mp_id'] = $mp['id'];
M('weixin_mp_friends')->where($where)->delete();
include APP_PATH . 'LaneWeChat/lanewechat.php';
$ret = UserManage::getFansList();
// print_r($ret);
// exit;
$openids = $ret['data']['openid'];
// var_dump($openids);
// exit;
$arr = array();
foreach ($openids as $value) {
$row = array();
$row['openid'] = $value;
$row['lang'] = 'zh-CN';
$arr[] = $row;
// print_r($arr);
// exit;
}
$ret = UserManage::getManyUserInfo($arr);
// print_r($ret);
// exit;
if(isset($ret['user_info_list'])){
$data = $ret['user_info_list'];
foreach ($data as &$value) {
$value['mp_id'] = $mp['id'];
$value['tagid_list'] = json_encode($value['tagid_list']);
}
M('weixin_mp_friends')->addAll($data);
}
$this->success('同步完成',U('index'));
}
再一個要注意的是我們在寫程式碼的時候一定輸出,看是否有值,以便查詢錯誤。
在我們獲取粉絲的基礎上,我們將我們獲取的粉絲同步到我們的前臺頁面,如何在後臺將資料傳給前臺頁面,同樣,我們在後臺頁面建立一個專有的方法,程式碼如下:
public function index($tagid=""){
$mp = $this->mp;
$where['mp_id'] = $mp['id'];
if (!empty($tagid)) {
$where['tagid_list'] = array('like',"%{$tagid}%");
}
$data=M('weixin_mp_friends')->where($where)->distinct('openid')->order()->select();
$tag = M('weixin_tags')->where($where)->select();
$this->assign('tag',$tag);
$this->assign('data',$data);
$this->display();
}
注意:資料庫的建立以及資料庫裡面所需要的欄位。
群發訊息
群發訊息首先我們先寫一個upload方法,來上傳圖片,程式碼之前寫過。
public function upload(){
$upload=new \Think\Upload();//例項化上傳類
$upload->maxSize =3145728;//設定上傳附件大小
$upload->exts=array('jpg','gif','png','jpeg');//設定附件上傳型別
$upload->rootPath='./Uploads/';//設定附件上傳跟目錄
$upload->savePath='';//設定附件上傳(子)目錄
$info=$upload->uploadOne($_FILES['file']);
if(!$info){
//上傳錯誤提示錯誤資訊
$this->ajaxReturn(array('code'=>1,'msg'=>$upload->getError()));
}else{
//上傳成功
$file='/Uploads/'.$info['savepath'].$info['savename'];
$this->ajaxReturn(array('code'=>0,'msg'=>'上傳成功','url'=>$file));
}
}
可以將選中的圖片顯示到頁面之後,我們就開始將其寫入到資料庫中,注意資料表自己建立,注意裡面的各個欄位
public function newslist(){
$arr=M('media_news')->select();
$data=array();
foreach ($arr as $value) {
$news_id=$value['news_id'];
$ret=M('media_news_list')->where("news_id='$news_id'")->select();
$value['list']=$ret;
$data[]=$value;
// print_r($data);
// exit;
}
$this->assign('data',$data);
$this->display();
}
public function addnewsSubmit(){
$mp=getCurrentMp();
$mp_id=$mp['id'];
$data=I('post.');
// print_r($data);
// exit;
$data=$data['data'];
$arr=array();
foreach ($data as $key=>$value) {
$value['qunfa_time']=time();
$value['mp_id']=$mp_id;
$value['create_time']=time();
$arr[]=$value;
if ($key==0) {
$news_id=M('media_news')->addAll($arr);
}
}
$ret=array();
foreach ($data as $value) {
$value['news_id']=$news_id;
$ret[]=$value;
}
$ret=M('media_news_list')->addAll($ret);
if($ret){
$this->ajaxReturn(array('msg'=>'新增成功'));
}else{
$this->ajaxReturn(array('msg'=>'新增失敗'));
}
}
private function uploadimg($url){
$accessToken = getAccess_token();
include APP_PATH . 'LaneWeChat/lanewechat.php';
// 上傳永久
$api = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";
$file = realpath('.' . $url);
// dump($file);
// exit;
$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);
}
}
public function uploadMediaNews($news_id){
// 得到news_id
$where["news_id"] = $news_id;
// 查庫
$data = M('media_news_list')->field('id,thumb_media_id,cover')->where("news_id=$news_id")->select();
// print_r($data);
// exit;
foreach ($data as $key => &$value) {
// 判斷封面的media_id為空
if (empty($value['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);
}
}
如果上傳不成功,或者圖片顯示不出來,將輸出程式碼解開,然後進行除錯,並結合F12。
如在Linux下寫程式碼,一定要注意其路徑。
相關文章
- 微信怎麼群發訊息?微信群發助手群發訊息圖文教程
- 微信群群發訊息艾特所有人雜談
- 使用 EasyWechat 同步微信粉絲到資料庫資料庫
- 微信小程式模板訊息還能群發?無限制推送?微信小程式
- PHP微信開發之模板訊息回覆PHP
- 微信公眾號開發之客服訊息
- Python自制微信機器人:群發訊息、自動接收好友Python機器人
- Java微信公眾號開發之使用攔截器獲取粉絲openIDJava
- 微信程式開發系列教程(三)使用微信API給微信使用者發文字訊息API
- 企業微信sdk呼叫,企業微信好友收發訊息
- 快速提升微信行銷的粉絲轉化?
- 微信公眾號開發(二)識別訊息型別型別
- 好訊息!微信小程式開發環境自帶vConsole微信小程式開發環境
- 一步步打造QQ群發訊息群發器
- 企業微信hook,自定義工具,收發訊息Hook
- Java指令碼實現在微信聊天框發訊息Java指令碼
- 監聽微信公眾號訊息,監聽微信訊息推送
- 微信程式開發系列教程(二)使用JavaScript給微信使用者傳送訊息JavaScript
- 微信開發系列之九 - 在微信裡直接建立SAP C4C的社交媒體訊息
- 小程式開發|5分鐘學會微信小程式模板訊息“召回利器”微信小程式
- 微信小程式開發之大神之路最全微信小程式開發教程(視訊+精品文章)微信小程式
- 如何在微信公眾號上傳附件給粉絲下載
- 微信公眾號定時群發平臺
- 微信開發-微信網頁開發-授權多次回撥網頁
- Android逆向之旅--免Root實現微信訊息同步原理解析Android
- 如何快速實現公眾號群發模板訊息?
- 微信開發系列之一 - 微信公眾號開發的開發環境搭建開發環境
- 微信小遊戲開發(10)-音訊播放遊戲開發音訊
- PHP微信公眾平臺開發視訊PHP
- 使用 laravel-wechat-notification 傳送微信模板訊息、企業微信應用訊息Laravel
- Python構建企業微信自動訊息轉發服務端Python服務端
- 微信開發1 (接入微信)
- 西安微信開發方案
- PHP微信支付開發PHP
- 微信小程式開發微信小程式
- 微信客服訊息時間限制
- 微信之父張小龍:企業微信將與微信訊息打通
- 微信開發之微信域名防封介面