微信菜单管理

原创 2018年04月17日 17:22:55

微信有图文素材和图片素材,下面通过两个方法,添加素材。、

图文素材,代码如下:

public function news_submit(){
		$url=I('post.url');//图片在本地服务器上的路径
		$file=realpath('.'. $url);//相对路径->绝对路径
		$data1=I('post.');
		// print_r($data);
		$accessToken=getAccess_token();
		include APP_PATH . 'LaneWeChat/lanewechat.php';
		$url="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";
		$data['media']=Curl::addFile($file);
		$ret=Curl::callWebServer($url,$data,'post',1,0);
		// $this->ajaxReturn($ret);
		// exit;
		if(isset($ret['media_id'])){
			$arr=array(
				'title'=>$data1['title'],
				"thumb_media_id"=>$ret['media_id'],
				"author"=>$data1['author'] ,
				"digest"=>$data1['digest'],
				"show_cover_pic"=>1,
				"content"=>$data1['content'],
				"content_source_url"=>$data1['link']
				);
			$data['articles'][]=$arr;

			$data=json_encode($data,JSON_UNESCAPED_UNICODE);
			// print_r($data);
			// exit;
			$url="https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=$accessToken";
			$ret=Curl::callWebServer($url,$data,'post',true,false);
			// $this->ajaxReturn($ret);
			// exit;
			if(isset($ret['media_id'])){
				$model=M('material');
				$mp=getCurrentMp();
				$arr=array(
						'mpid'=>$mp['id'],
						'media_id'=>$ret['media_id'],
						'create_time'=>time(),
						'path'=>$url,
						'url'=>$file,
						'link'=>$arr['content_source_url'],
						'type'=>'news',
						'description'=>"作者:".$arr['author']."描述:".$arr['digest']
					);
				unset($arr['content_source_url']);
				unset($arr['thumb_media_id']);
				unset($arr['author']);
				unset($arr['digest']);
				unset($arr['show_cover_pic']);
				// print_r($arr);
				// exit;
				$ret=$model->add($arr);
				if($ret){
					$this->ajaxReturn(array('ret'=>true,'msg'=>'上传成功'));
				}else{
					$this->ajaxReturn(array('ret'=>false,'msg'=>'上传失败'));
				}
			}
		}

	}

上传文本素材,需要注意显示在页面上的字段和添加入数据库的字段。

图片素材,代码如下:

public function image_submit(){
		$url=I('post.url');//图片在本地服务器上的路径
		// dump($url);
		// exit;
		$file=realpath('.'. $url);//相对路径-》绝对路径
		// dump($file);
		// exit;
		$staus_type=I('post.staus_type');//临时,永久
		$accessToken=getAccess_token();
		include APP_PATH . 'LaneWeChat/lanewechat.php';
		if($staus_type==0){
			$url="https://api.weixin.qq.com/cgi-bin/media/upload?access_token=$accessToken&type=image";
			
		}else{
			$url="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";
		}
		$data['media']=Curl::addFile($file);
		$ret=Curl::callWebServer($url,$data,'post',1,0);
		// $this->ajaxReturn($ret);
		if(isset($ret['media_id'])){
				$model=M('material');
				$mp=getCurrentMp();
				$arr=array(
						'mpid'=>$mp['id'],
						'media_id'=>$ret['media_id'],
						'create_time'=>time(),
						'url'=>$file,
						'type'=>'image'
					);
				$ret=$model->add($arr);
				if($ret){
					$this->ajaxReturn(array('ret'=>true,'msg'=>'上传成功'));
				}else{
					$this->ajaxReturn(array('ret'=>false,'msg'=>'上传失败'));
				}
			}
	}

值得注意的是,图片储存的路径,必须要返回到最上层目录,才能构建完整的相对路径,如果不是相对路径,将不会成功。

两个接口是不同的,一个为临时,一个为永久。切记不可胡乱调用,每天接口只能被调用10次左右,超过次数今天就不能使用了。

media_id,是上传成功后返回的一个参数,十分重要。需要特别注意,此后许多方法,都将在此基础上进行使用。



个人作品-微信服务号菜单管理神器

1.帮助用户管理微信服务号菜单 2.自动生成菜单事件Id 3.基于JAVA Swing实现 4.下载以后即可运行,已经经过本人严格测试。 5. 演示了JAVA Socket与Swing的编程技巧...
  • jia20003
  • jia20003
  • 2013-12-26 00:28:38
  • 5980

微信公众平台 自定义菜单 开发者 C#版(已完善)

  • 2013年08月31日 17:39
  • 2KB
  • 下载

微信公众号自定义菜单

如何才能自定义菜单有两种方式可以自定义菜单,一种是非开发者模式,直接进入公众号的管理后台操作:非开发者模式这里不多讲。另外一种是开发者模式。要进入开发者模式需要配置token和URL(这个之前有篇文章...
  • pony_maggie
  • pony_maggie
  • 2016-09-12 16:40:58
  • 2875

Java微信二次开发之15-自定义菜单的类型

距离写上一篇文章《自定义菜单的创建及菜单事件响应》整整过了两个月的时间,那时公众平台还没有开放view类型的菜单。在不久前,微信公众平台悄悄开放了view类型的菜单,却没有在首页发布任何通知,貌似微信...
  • LanBuff
  • LanBuff
  • 2016-09-06 15:47:22
  • 1742

微信菜单管理客户端

  • 2013年12月26日 00:27
  • 1MB
  • 下载

微信公众平台C# .net创建菜单和删除菜单

  • 2014年02月25日 11:59
  • 44KB
  • 下载

微信开发第五篇手机端微信公众号自定义菜单及OAuth2.0授权页面

微信自定义菜单,其中微信OAuth2.0授权
  • u010773333
  • u010773333
  • 2015-08-28 14:40:48
  • 2507

自定义菜单 微信公众平台开发教程(2)

自定义菜单开发时,需要使用到Token, 关于Token获取 微信是有限制的。
  • peiyuanxin
  • peiyuanxin
  • 2017-02-17 11:23:50
  • 2025

【自定义菜单】创建自定义菜单(Senparc.Weixin.MP.dll)

string accessToken = "xxx"; ButtonGroup bg = new ButtonGroup(); //单击 ...
  • wei_jie_zhang
  • wei_jie_zhang
  • 2016-09-22 17:57:55
  • 1156

TP+PHP 微信公众号 图文 菜单创建

  • 2016年03月18日 11:44
  • 1.68MB
  • 下载
收藏助手
不良信息举报
您举报文章:微信菜单管理
举报原因:
原因补充:

(最多只允许输入30个字)