微信開發——同步粉絲、群發訊息
同步粉絲
首先我們先建立一個粉絲的控制器,在控制器去寫一個方法,注意要與前臺頁面連線起來,程式碼如下:
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下寫程式碼,一定要注意其路徑。
相關文章
- 微信怎麼群發訊息?微信群發助手群發訊息圖文教程
- 微信開發實戰(5)—粉絲關注開發者公眾號時,自動回覆訊息
- 微信開發推送訊息案例
- 使用 EasyWechat 同步微信粉絲到資料庫資料庫
- 微信小程式模板訊息還能群發?無限制推送?微信小程式
- 基於itchat實現微信群訊息同步機器人機器人
- 微信開發中的訊息驗證與訊息回覆
- PHP微信開發之模板訊息回覆PHP
- 微信小程式開發(十七)模板訊息微信小程式
- 微信公眾號開發之客服訊息
- Java微信公眾號開發之使用攔截器獲取粉絲openIDJava
- Python自制微信機器人:群發訊息、自動接收好友Python機器人
- 給微信伺服器發訊息伺服器
- 微信程式開發系列教程(三)使用微信API給微信使用者發文字訊息API
- 微信公眾號開發(二)識別訊息型別型別
- 微信公眾平臺開發(十二) 傳送客服訊息
- 微信公眾平臺開發(十) 訊息回覆總結
- 微商快速查詢日加上萬精準粉絲群
- 如何快速實現公眾號群發模板訊息?
- iOS開發訊息推送原理iOS
- 企業微信hook,自定義工具,收發訊息Hook
- C#微信公眾平臺開發—高階群發介面C#
- 粉絲群第27期JS小測直播答疑文字版JS
- 世界盃臨近,粉絲代幣開啟web3.0粉絲經濟Web
- 微信程式開發系列教程(二)使用JavaScript給微信使用者傳送訊息JavaScript
- chrome devtools 開發之訊息通訊Chromedev
- 好訊息!微信小程式開發環境自帶vConsole微信小程式開發環境
- wechat_pusher : 基於Golang開發的微信訊息定時推送框架Golang框架
- iPhoneSE怎麼群發簡訊?蘋果iPhoneSE群發簡訊方法iPhone蘋果
- 成為更優秀的開發人員:第1篇 - 製造粉絲
- Java指令碼實現在微信聊天框發訊息Java指令碼
- 幽默:github的粉絲價值比社交媒體粉絲高Github
- 借鑑增加Twitter粉絲的經驗來提高微博粉絲
- 小程式開發|5分鐘學會微信小程式模板訊息“召回利器”微信小程式
- Senparc.Weixin.MP SDK 微信公眾平臺開發教程(十五):訊息加密加密
- 暴雪收購Spellbreak開發商Proletariat以滿足魔獸粉絲“貪婪的胃口”
- iOS 訊息轉發iOS
- 訊息佇列批次收發訊息,請避開這 5 個坑!佇列