微信开发 音乐接口_微信公众号开发后台调用微信接口 - CSDN
  • 微信音频接口调用demo

    千次阅读 2018-02-10 17:52:54
    前几天做一个录音送祝福的项目,事先做了一个demo,记录一下,方便日后需要时套上直接使用<!DOCTYPE html> <html> <head> <meta charset=".../&

    前几天做一个录音送祝福的项目,事先做了一个demo,记录一下,方便日后需要时套上直接使用

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="viewport" content="width=640, user-scalable=no">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Expires" content="0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="format-detection" content="telephone=no">
    <meta name="apple-mobile-web-app-title" content="">
    <title>录音test</title>
    <style type="text/css">
    @charset "utf-8";
    *{ margin:0px; padding:0px; box-sizing:border-box; -webkit-tap-highlight-color:rgba(0,0,0,0);}
    html{ max-width:640px; margin:0 auto;}
    body{ font-family:"PingFangSC-Regular","sans-serif","STHeitiSC-Light","微软雅黑","Microsoft YaHei"; font-size:24px; line-height:1.5em; color:#000;
        -webkit-user-select:none; user-select:none;
        -webkit-touch-callout:none; touch-callout:none;
    }
    
    .start_btn , .play_btn , .send_btn{ width:250px; height:60px; line-height:60px; margin:20px auto; text-align:center; border:#eee solid 2px; cursor:pointer;}
    .start_btn_in , .stop_btn{ color:#f00; border:#f00 solid 2px;}
    </style>
    </head>
    
    <body>
    
    <div class="start_btn">按住不放即可录音</div>
    
    <div class="play_btn">点我播放</div>
    
    <div class="send_btn">点我保存</div>
    
    
    
    
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
    <script type="text/javascript">
    wx.config({
    	debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    	appId: '', // 必填,公众号的唯一标识
    	timestamp: '', // 必填,生成签名的时间戳
    	nonceStr: '', // 必填,生成签名的随机串
    	signature: '',// 必填,签名,见附录1
    	jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage','startRecord','stopRecord','onVoiceRecordEnd','playVoice','stopVoice','onVoicePlayEnd','uploadVoice'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    });
    
    wx.ready(function(){
    	//返回音频的本地ID
    	var localId;
    	//返回音频的服务器端ID
    	var serverId;
    	//录音计时,小于指定秒数(minTime = 10)则设置用户未录音
    	var startTime , endTime , minTime = 2;
    	
    	
    	//***********************************//
    	
    	
    	//开始录音
    	$('.start_btn').on('touchstart',function(e){
    		e.preventDefault();
    		var $this = $(this);
    		$this.addClass('start_btn_in');
    		startTime = new Date().getTime();
    		
    		//开始录音
    		wx.startRecord();
    	});
    	//***********************************//
    	//停止录音接口
    	$('.start_btn').on('touchend', function(){
    		var $this = $(this);
    		$this.removeClass('start_btn_in');
    		
    		//停止录音接口
    		wx.stopRecord({
    			success: function (res) {
    				localId = res.localId;
    			}
    		});
    		
    		endTime = new Date().getTime();
    		alert((endTime - startTime) / 1000);
    		if((endTime - startTime) / 1000 < minTime){
    			localId = '';
    			alert('录音少于' + minTime +  '秒,录音失败,请重新录音');
    		}
    		
    	});
    	//监听录音自动停止接口
    	wx.onVoiceRecordEnd({
    		//录音时间超过一分钟没有停止的时候会执行 complete 回调
    		complete: function (res) {
    			localId = res.localId;
    			
    			$('.start_btn').removeClass('start_btn_in');
    		}
    	});
    	
    	
    	//***********************************//
    	
    	
    	$('.play_btn').on('click',function(){
    		if(!localId){
    			alert('您还未录音,请录音后再点击播放');
    			return;
    		}
    		var $this = $(this);
    		if($this.hasClass('stop_btn')){
    			$(this).removeClass('stop_btn').text('点我播放');
    			
    	//		//暂停播放接口
    	//		wx.pauseVoice({
    	//			//需要暂停的音频的本地ID,由 stopRecord 或 onVoiceRecordEnd 接口获得
    	//			localId: localId
    	//		});
    	
    			//停止播放接口
    			wx.stopVoice({
    				//需要停止的音频的本地ID,由 stopRecord 或 onVoiceRecordEnd 接口获得
    				localId: localId
    			});
    		}else{
    			$this.addClass('stop_btn').text('点我停止');
    			
    			//播放语音接口
    			wx.playVoice({
    				//需要播放的音频的本地ID,由 stopRecord 或 onVoiceRecordEnd 接口获得
    				localId: localId
    			});
    		}
    	});
    	//监听语音播放完毕接口
    	wx.onVoicePlayEnd({
    		//需要下载的音频的服务器端ID,由uploadVoice接口获得
    		serverId: localId,
    		success: function (res) {
    			$('.play_btn').removeClass('stop_btn').text('点我播放');
    			
    			//返回音频的本地ID
    			//localId = res.localId;
    		}
    	});
    	
    	
    	//***********************************//
    	
    	
    	//上传语音接口
    	$('.send_btn').on('click',function(){
    		if(!localId){
    			alert('您还未录音,请录音后再保存');
    			return;
    		}
    		
    		alert('上传语音,测试,并未提交保存');
    		return;
    		
    		//上传语音接口
    		wx.uploadVoice({
    			//需要上传的音频的本地ID,由 stopRecord 或 onVoiceRecordEnd 接口获得
    			localId: localId, 
    			//默认为1,显示进度提示
    			isShowProgressTips: 1,
    			success: function (res) {
    				//返回音频的服务器端ID
    				serverId = res.serverId;
    			}
    		});
    	});
    	
    });
    
    </script>
    </body>
    </html>
    

    展开全文
  • 微信 在线听歌 在线点歌 在线点播 音乐API 公众平台 微信公众平台消息接口 微信开发模式 作者:http://www.cnblogs.com/txw1958/ 微信公众平台在年前开放了新的消息接口-音乐消息,这是广大微信公众平台开发者...

    微信 在线听歌 在线点歌 在线点播 音乐API 公众平台 微信公众平台消息接口 微信开发模式  
    作者:http://www.cnblogs.com/txw1958/

    微信公众平台在年前开放了新的消息接口-音乐消息,这是广大微信公众平台开发者的福音。
    根据这一功能,如果能做出在微信中点歌功能,那么我们以后就可以不用安装其他APP,
    直接在微信里面关注一个账号,就可以听歌了,还省去了安装的麻烦,而且不用再占用空间。如果音乐资源足够好,那将秒杀一切手机上在线听歌软件也不是没有可能的。


    一、获取音乐资源
    方倍工作室推出音乐API接口,目前处于测试阶段,欢迎各位试用。

    调用方法:

    如调用“最炫民族风” ,传递其其URL编码 %e6%9c%80%e7%82%ab%e6%b0%91%e6%97%8f%e9%a3%8e 就可以了。

    以下url可以直接在IE8中打开,能自动转码。

    http://api2.sinaapp.com/search/music/?appkey=0020130430&appsecert=fa6095e1133d28ad&reqtype=music&keyword=%e6%9c%80%e7%82%ab%e6%b0%91%e6%97%8f%e9%a3%8e

    返回格式:与微信音乐格式类似,json型:

    {
        "errcode": 0,
        "msgtype": "music",
        "music": {
            "title": "最炫民族风",
            "description": "music",
            "musicurl": "http://stream10.qqmusic.qq.com/31432174.mp3",
            "hqmusicurl": "http://stream10.qqmusic.qq.com/31432174.mp3"
        }
    }


     

     失败时返回文本信息

    {
        "errcode": "1",
        "msgtype": "text",
        "text": {
            "content": "检索音乐失败!"
        }
    }

    二、封装音乐消息

    获取该音乐消息的代码如下:

    else if(substr($keyword,0,6) == "点歌"){
        $entityName = trim(substr($keyword,6,strlen($keyword)));
        if ($entityName == ""){
            $contentStr = "发送“点歌”加上歌名,如“点歌最炫民族风”";
            $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
            return $resultStr;
        }
        $apihost = "http://api2.sinaapp.com/";
        $apimethod = "search/music/?";
        $apiparams = array('appkey'=>"0020120430", 'appsecert'=>"fa6095e113cd28fd", 'reqtype'=>"music");
        $apikeyword = "&keyword=".urlencode($entityName);
        $apicallurl = $apihost.$apimethod.http_build_query($apiparams).$apikeyword;
        $api2str = file_get_contents($apicallurl);
        $api2json = json_decode($api2str, true);
        $musicUrl = $api2json['music']['hqmusicurl'];
        if ($musicUrl == ""){
            $contentStr = "没有找到音乐,可能不是歌名或者检索失败,请换首歌试试!";
            $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
        }else{
            $musicArray = array("title"=>$api2json['music']['title'],
                                "description"=>$api2json['music']['description'],
                                "MusicUrl"=>$api2json['music']['musicurl'],
                                "HQMusicUrl"=>$api2json['music']['hqmusicurl']);
            $resultStr = $this->transmitMusic($object, $musicArray, $funcFlag);
        }
        return $resultStr;
    }

    三、与微信对接

    音乐消息格式如下

    参数 描述

    ToUserName  接收方帐号(收到的OpenID)
    FromUserName  开发者微信号
    CreateTime  消息创建时间
    MsgType  music
    MusicUrl  音乐链接
    HQMusicUrl  高质量音乐链接,WIFI环境优先使用该链接播放音乐
    FuncFlag  位0x0001被标志时,星标刚收到的消息。


     

    四、效果演示
    需要添加 天气神 ,然后发送m,可以看到相关使用说明

    1. 发送“点歌”加歌名,如“点歌最炫民族风”,返回指定的歌曲。
    2. 只发送“点歌”两个字,系统为您选择一首热门歌曲。
    3. 按住说话按钮2秒钟再松开,随机返回一首热门歌曲。

    歌曲在WIFI环境中播放很流畅,有很好地体验。

    这是点歌成功的界面

    原文:http://www.cnblogs.com/txw1958/archive/2013/02/25/weixin-if50-music.html



     

     

    展开全文
  • 微信开发常用接口

    2019-07-31 10:08:26
    接口调用说明: ① Appkey请使用的微信公众号,不要使用默认的trailuser ②接口返回类型为文本、图文、及音乐三种基本消息 ③ 请在所有消息底部主动加上“技术支持 方倍工作室” ④ JSON验证网址...

    在本文中,我们列出微信公众平台上可以使用的API接口以及举例如何在微信公众平台调用这些接口实现相应的功能。

    接口调用说明: ① Appkey请使用的微信公众号,不要使用默认的trailuser ② 接口返回类型为文本、图文、及音乐三种基本消息 ③ 请在所有消息底部主动加上“技术支持 方倍工作室” ④ JSON验证网址 http://apix.sinaapp.com/json/ ⑤ 接口将不定期增加或更新,欢迎指出错误 ⑥ 如果有想要实现的,请在下面评论中列出并提供数据来源 ⑦ 提供的例子为天气、笑话、点歌功能,其他接口可以同样的调用 ⑧ 每个IP每天免费最大调用次数为200次,不要使用公用IP,如SAE或BAE ⑨ SAE每日运行需要开支,欢迎主动付费使用,付费用户功能上将不受任何限制 ⑩ 不必费尽心思使用虚假的appkey,它仅为统计使用,真实appkey能得到更快更好的程序响应 ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳

     

     

    001. 天气预报接口 [20130901]

    city:城市名,传递时须做urlencode
    http://apix.sinaapp.com/weather/?appkey=trialuser&city=%E6%B7%B1%E5%9C%B3

    002. 空气质量指数接口 [20130901]

    city:城市名,传递时须做urlencode
    http://apix.sinaapp.com/airquality/?appkey=trialuser&city=%E6%B7%B1%E5%9C%B3

    003. 快递查询接口 [20130901]

    company:快递公司英文代码 点击查看英文代码列表
    number:快递单号
    http://apix.sinaapp.com/express/?appkey=trialuser&company=yuantong&number=3143490877
    新版Web页查询
    http://apix.sinaapp.com/express2/index.php

    004. 智能快递查询接口 [20130901]

    number:快递单号
    http://apix.sinaapp.com/expressauto/?appkey=trialuser&number=3143490877
    备注:支持EMS,申通快递,圆通快递,中通快递,汇通快递,天天快递,韵达快递,顺丰快递,宅急送,速尔快递,德邦物流,联昊通物流,全峰快递,中国邮政,如风达

    005. 股票查询接口 [20130901]

    code:股票代码[通达信代码]
    http://apix.sinaapp.com/stock/?appkey=trialuser&code=000063

    006. 股票分析接口 [20131004]

    code:股票代码
    http://apix.sinaapp.com/stockanalysis/?appkey=trialuser&code=000063

    007. 公交线路接口 [20131004]

    city:城市名,传递时须做urlencode
    line:线路,传递时须做urlencode
    http://apix.sinaapp.com/busline/?appkey=trailuser&city=%E6%B7%B1%E5%9C%B3&line=209

    008. 公交、地铁换乘接口 [20131004]

    city:城市名,传递时须做urlencode
    start:起点,传递时须做urlencode
    end:终点,传递时须做urlencode
    http://apix.sinaapp.com/bus/?appkey=trailuser&city=%E6%B7%B1%E5%9C%B3&start=%E4%B8%96%E7%95%8C%E4%B9%8B%E7%AA%97&end=%E7%AB%B9%E5%AD%90%E6%9E%97

    009. 地铁查询接口 [20131004]

    http://apix.sinaapp.com/subway/?appkey=trialuser

    010. 火车查询 [20131004]

    http://apix.sinaapp.com/train/?appkey=trialuser

    011. 汽车查询接口 [20131004]

    http://apix.sinaapp.com/coach/?appkey=trialuser

    012. 自驾线路 [20131004]

    startcity:起点城市,传递时须做urlencode
    startplace:起点地名,传递时须做urlencode
    endcity:终点城市,传递时须做urlencode
    endplace:终点地名,传递时须做urlencode
    http://apix.sinaapp.com/driving/?appkey=trailuser&startcity=%E5%8C%97%E4%BA%AC&startplace=%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6&endcity=%E5%8C%97%E4%BA%AC&endplace=%E5%A4%A9%E5%AE%89%E9%97%A8

    013. 出租车费用 [20131004]

    city:城市名,传递时须做urlencode
    start:起点,传递时须做urlencode
    end:终点,传递时须做urlencode
    http://apix.sinaapp.com/taxi/?appkey=trailuser&city=%E5%8C%97%E4%BA%AC&start=%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6&end=%E5%A4%A9%E5%AE%89%E9%97%A8

     014. 航班状态接口 [20131004]

    number:航班号
    http://apix.sinaapp.com/flight/?appkey=trialuser&number=ca1111

    015. 笑话接口 [20131004]

    http://apix.sinaapp.com/joke/?appkey=trialuser

    016. 周公解梦接口 [20131004]

    content: 梦见内容,传递时须做urlencode
    http://apix.sinaapp.com/dream/?appkey=trialuser&content=%E8%80%81%E5%B8%88

    017. 中英互译 [20131104]

    content: 翻译内容,传递时须做urlencode
    http://apix.sinaapp.com/translate/?appkey=trialuser&content=%E8%A1%A8%E7%A4%BA

    018. 星座运势接口 [20131104]

    name: 星座名,传递时须做urlencode
    http://apix.sinaapp.com/astrology/?appkey=trialuser&name=%E7%99%BD%E7%BE%8A%E5%BA%A7

    019. 彩票开奖结果接口 [20131104]

    name:彩票名称,传递时须做urlencode
    http://apix.sinaapp.com/lottery/?appkey=trailuser&name=%E5%8F%8C%E8%89%B2%E7%90%83
    备注:支持双色球,大乐透,3D,排列3,排列5,七星彩,七乐彩,胜负彩,任选九,六场半全场,四场进球

    020. 苹果IMEI/序列号查询接口 [20131104]

    number: IMEI号或序列号
    http://apix.sinaapp.com/apple/?appkey=trialuser&number=358031058974471

    021. 百科全书接口 [20131204]

    word: 词条,传递时须做urlencode
    http://apix.sinaapp.com/encyclopedia/?appkey=trialuser&word=%e5%be%ae%e4%bf%a1

    022. 图书介绍 [20131104]

    name: 图书名,传递时须做urlencode
    http://apix.sinaapp.com/book/?appkey=trialuser&name=%E7%9B%97%E5%A2%93%E7%AC%94%E8%AE%B0

    023. 歌曲介绍 [20131104]

    name: 音乐名,传递时须做urlencode
    http://apix.sinaapp.com/song/?appkey=trialuser&name=%E6%96%B0%E5%B9%B4%E5%A5%BD

    024. 影片介绍 [20131104]

    name: 电影名,传递时须做urlencode
    http://apix.sinaapp.com/movie/?appkey=trialuser&name=%E9%BE%99%E7%8C%AB

    025. 历史上的今天接口 [20140104]

    http://apix.sinaapp.com/history/?appkey=trialuser

    026. 经济指标

    027. 财经大事

    028. 手机充值

    http://apix.sinaapp.com/recharge/?appkey=trialuser
    备注:腾讯财付通官方网站充值接口,基于微信安全支付

    029. 城市团购 [20140104]

    city: 城市名,传递时须做urlencode,你可以指定一个固定城市 查看支持城市列表
    keyword:关键字,传递时须做urlencode,可为商户名、商品名、地址等
    http://apix.sinaapp.com/groupon/?appkey=trialuser&city=%E6%B7%B1%E5%9C%B3&keyword=%E5%8D%8E%E5%BC%BA%E5%8C%97

    030. 城市优惠

    031. 黄金

    032. 白银

    033. 外汇

    034. 图片检索

    035. 视频检索

    036. 地图位置服务 [20140104]

    lat:纬度
    lng:经度
    entity:查询名称,传递时须做urlencode
    http://apix.sinaapp.com/map/?appkey=trialuser&lat=39.915&lng=116.404&entity=%E5%8C%BB%E9%99%A2

    037. 菜谱 [20140104]

    name: 菜谱名称,传递时须做urlencode
    http://apix.sinaapp.com/recipe/?appkey=trialuser&name=%E5%89%81%E6%A4%92%E9%B1%BC%E5%A4%B4

    038. 手机号码归属地查询接口 [20140105]

    number: 手机号码
    http://apix.sinaapp.com/mobilephone/?appkey=trialuser&number=13456789000

    039. 身份证归属查询查询接口 [20140105]

    number: 15或18位身份证号码
    http://apix.sinaapp.com/idcard/?appkey=trialuser&number=542621201212210003

    040. 电视节目表 [20140116]

    http://apix.sinaapp.com/tvprogram/?appkey=trialuser

    041. IP地址查询接口 [20140116]

    http://apix.sinaapp.com/ip/?appkey=trialuser&ip=202.203.208.80

    042. 每日宜忌查询接口 [20140116][源网站已关闭,失效]

    http://apix.sinaapp.com/almanac/?appkey=trialuser

    043. 疾病查询 [20140121]

    name: 疾病名,传递时须做urlencode
    http://apix.sinaapp.com/illness/?appkey=trailuser&name=%E6%84%9F%E5%86%92

    044. 号码吉凶

    045. 邮政编码

    code:邮政编码
    http://apix.sinaapp.com/postcode/?appkey=trailuser&code=518057

    046. 产品比价查询接口 [20140118]

    name: 商品名,传递时须做urlencode
    http://apix.sinaapp.com/price/?appkey=trialuser&name=iphone%205s

    047. 食物热量查询接口 [20140120]

    name:食物名
    http://apix.sinaapp.com/calorie/?appkey=trailuser&name=%E9%B8%A1%E8%9B%8B

    048. 人品计算 [20140118]

    name: 人名,传递时须做urlencode
    http://apix.sinaapp.com/moral/?appkey=trialuser&name=%E5%BC%A0%E4%B8%89

    049. 违章查询 [20140118]

    http://apix.sinaapp.com/peccancy/?appkey=trialuser

    050. 药物查询 [20140117]

    name: 药物名,传递时须做urlencode
    http://apix.sinaapp.com/medicine/?appkey=trialuser&name=%E9%9D%92%E9%9C%89%E7%B4%A0

    051. 周易算命 [20140117]

    name: 人名,传递时须做urlencode
    http://apix.sinaapp.com/fortune/?appkey=trailuser&name=%E5%BC%A0%E4%B8%89

    052. 机票查询 [20140118]

    http://apix.sinaapp.com/airline/?appkey=trialuser

    053. 酒店查询 [20140119]

    http://apix.sinaapp.com/hotel/?appkey=trialuser

    054. 驾照模拟考试 [20140119]

    http://apix.sinaapp.com/drivingtest/?appkey=trialuser

    056. 在线点歌查询接口 [20140119]

    singer: 歌手名,传递时须做urlencode
    song: 歌曲名,传递时须做urlencode
    http://apix.sinaapp.com/music/?appkey=trialuser&singer=%E5%87%A4%E5%87%B0%E4%BC%A0%E5%A5%87&song=%E6%9C%80%E7%82%AB%E6%B0%91%E6%97%8F%E9%A3%8E

    057. 车牌归属地吉凶 [20140119]

    number:车牌号码。例如:湘C12345,传递时须做urlencode
    http://apix.sinaapp.com/platenumber/?appkey=trialuser&number=%E6%B9%98C12345

    058. 冬吴相对论 [20140120]

    number:节目期号
    http://apix.sinaapp.com/dongwu/?appkey=trialuser&number=123

    059. 每日英语 [20140120]

    type:类型,目前支持translation, listening
    http://apix.sinaapp.com/daily/?appkey=trailuser&type=translation

    060. 实时路况 [20140120]

    http://apix.sinaapp.com/traffic/?appkey=trialuser

    061. 菜价查询 [20140121]

    http://apix.sinaapp.com/foodprice/?appkey=trialuser

    062. 成语词典 [20140121]

    word:成语名,传递时须做urlencode
    http://apix.sinaapp.com/idiom/?appkey=trailuser&word=%E6%96%B9%E5%85%B4%E6%9C%AA%E8%89%BE

     063. 人脸识别接口 [20140315]

    picurl:图片地址,传递时须做urlencode
    http://apix.sinaapp.com/face/?appkey=trialuser&picurl=http://www.ineiyi.com/uploads/allimg/1312/79-131213142315.jpg

     064. 四六级成绩查询接口 [20140317]

    http://apix.sinaapp.com/cet/?appkey=trialuser

     

    转载于:https://www.cnblogs.com/iiot/p/4347226.html

    展开全文
  • 文章结构 ...1、怎么调用微信高级接口微信高级接口微信普通接口的区别后台服务器可以调用微信接口微信用户进行讯息的通信,这样的行为就是在调用微信接口,这些接口是基础接口,你不需要任

    文章结构
    1、怎么调用微信高级接口
    2、调用微信高级几大实例
    2.1、调用自定义菜单接口
    2.2、客服接口
    2.3、生成二维码
    3、获取非微信功能接口,如天气网的天气接口、股票网站的信息接口。

    怎么调用微信高级接口

    微信高级接口和微信普通接口的区别

    后台服务器可以调用微信的接口与微信用户进行讯息的通信,这样的行为就是在调用微信的接口,这些接口是基础接口,你不需要任何付费行为或者身份认证行为就可以调用。但是有一些高级接口,你的微信公众号必须达到一定的权限如通过微信认证才能调用自定义菜单、微信支付等高级功能。
    不过微信公众帐号的测试号系统可以应用这些高级接口(微信支付等涉及交易的接口除外)。

    微信高级接口的调用

    微信高级接口的调用需要先调用一个token_access接口,只有先调用这个接口才能调用其它高级接口。
    如下:连通高级接口示意图
    这里写图片描述
    调用token_access需要用到appID和appsecreset(在微信公众好平台开发(一)中已经讲述这两者的由来)


    调用代码如下

    <?php
    $appid = "wxbad0b4x543aa0b5e";
    $appsecret = "ed222a84da15cd24c4bdfa5d9adbabf2";
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
    //下面是一个cURL会话过程,通过这个会话可以返回一段字符串{"access_token":"NU7Kr6v9L9TQaqm5NE3OTPctTZx797Wxw4Snd2WL2HHBqLCiXlDVOw2l-Se0I-WmOLLniAYLAwzhbYhXNjb"}
    这就是我们要获得的Access Token了。在调用高级功能接口的时候就靠它。这个过程用的时候直接引用就好,不需要深究,这个cURL系统相关函数有点多而且复杂。
    
    $ch = curl_init();//初始化
    curl_setopt($ch, CURLOPT_URL, $url);//与url建立对话
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //进行配置
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //进行配置
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//进行配置
    $output = curl_exec($ch);//执行对话,获取接口数据Access Token
    curl_close($ch);//关闭会话
    $jsoninfo = json_decode($output, true);//解码接口数据,将json格式字符串转换成php变量或数组。默认是变量,加true后是数组。
    $access_token = $jsoninfo["access_token"];
    
    ?>
    
    

    2、调用微信高级接口

    调用自定义菜单功能

      //创建一个自定义菜单的json字符串
      $jsonmenu = '{
          "button":[
          {
                "name":"关于我们",
               "sub_button":[
                {
                   "type":"click",
                   "name":"公司简介",
                   "key":"公司简介"
                },
                {
                   "type":"click",
                   "name":"社会责任",
                   "key":"社会责任"
                },
                {
                   "type":"click",
                   "name":"联系我们",
                   "key":"联系我们"
                }]
           },
           {
               "name":"产品服务",
               "sub_button":[
                {
                   "type":"click",
                   "name":"微信平台",
                   "key":"微信平台"
                },
                {
                   "type":"click",
                   "name":"微博应用",
                   "key":"微博应用"
                },
                {
                    "type":"click",
                    "name":"手机网站",
                    "key":"手机网站"
                }]
           },
           {
               "name":"技术支持",
               "sub_button":[
                {
                   "type":"click",
                   "name":"文档下载",
                   "key":"文档下载"
                },
                {
                   "type":"click",
                   "name":"技术社区",
                   "key":"技术社区"
                },
                {
                    "type":"click",
                    "name":"服务热线",
                    "key":"服务热线"
                }]
           }]
     }';
    
      $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;//接口地址
    $result = https_request($url, $jsonmenu);//与接口建立会话
    var_dump($result);
    
    function https_request($url,$data = null){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
    //把这段代码加入到上面的调用Access Token接口的代码中就可以实现在微信公众号界面添加菜单的功能。
    
    

    当我们为微信公众号添加菜单后怎么样设置点击菜单时会出现相应的效果呢?
    这里涉及到另一种xml类型的数据传递:

    <xml>
    <ToUserName><![CDATA[gh_82479813ed64]]></ToUserName>
    <FromUserName><![CDATA[ojpX_jig-gyi3_Q9fHXQ4rdHniQs]]></FromUserName>
    <CreateTime>1392297442</CreateTime>
    <MsgType><![CDATA[event]]></MsgType>
    <Event><![CDATA[CLICK]]></Event>
    <EventKey><![CDATA[公司简介]]></EventKey>
    </xml>
    //上面是点击click菜单的数据传递类型,数据会发送给后台服务器,然后服务器做出响应。

    菜单类型有多种,xml类型差别,详细情况可以在微信公众号平台上查看相应文档。
    *这里要说明的是只要你有微信公众号的appID和appsecret,在任何服务器空间运行这段php代码都可以进入微信服务器调用相应功能,不一定非要在进行了token验证的服务器下运行。token验证是为了后台服务器进行判断数据来源是否是来自微信服务器,与调用微信服务器的高级接口并没有多大的关联。
    php文件一定要在服务器运行才会产生效果。
    其它高级接口的调用都同调用自定义菜单一样。

    调用客服接口

    当微信用户主动发消息 给微信公众帐号的时候(包括发送信息、单击自定义菜单click事件、订阅事件、扫描二维码、支付成功事件)微信会把消息数据推送给开发者。开发者在一段时间内可以调用客服接口消息,通过post一个JSON数据包来发送消息给用户。

    $access_token = "nFX6GFsspSLBKJLgMQ3kj1YM8_FchRE7vE2ZOIlmfiCOQntZKnBwuOen2GCBpFHBYS4QLGX9fGoVfA36tftME2sRiYsKPzgGQKU-ygU7x8cgy_1tlQ4n1mhSumwQEGy6PK6rdTdo8O8GROuGE3Hiag";
    $openid = "o7Lp5t6n59DeX3U0C7Kric9qEx-Q";//微信用户都有一个openID
    

    下图所示即为openID的获取方式。
    这里写图片描述

    $data = '{
        "touser":"'.$openid.'",
        "msgtype":"text",
        "text":
        {
             "content":"Hello World"
        }
    }';//通过基础消息接口发送的数据是XML格式的,但是调用客服接口发送的数据是json数据格式,更易传输。 
    $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
    $result = https_request($url,$data);
    var_dump($result);
    
    function https_request($url,$data)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url); 
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        if (curl_errno($curl)) {
           return 'Errno'.curl_error($curl);
        }
        curl_close($curl);
        return $result;
    }

    客服接口发送图文消息、音乐消息、视频消息具体格式请参看微信公众平台上的开发帮助文档。
    客服接口可以和消息接口混合使用。
    这里大家可能不明白既然可以直接通过被动响应消息的接口发送xml数据给用户,为什么还需要这样一个客服接口?可以这样理解,被动响应消息是一次性的只能回复一次相同的消息。如你向一个音乐平台输入一个歌星名称,通过被动响应方式发送的消息永远只会回复你一首相同的歌。但是通过客服接口方式可以每次回复不同的 歌曲,这涉及到mysql数据库。
    再简单一点,一个查看快递包括地址的微信公众平台。你每次输入同一个订单编号,后台却能够回复订单每次所在的位置(针对同样的文本却可以做出不同的回应)就像是人工回复一样,这就是客服接口 。

    生成二维码接口

    二维码类型分两种,分别是临时二维码eh 和永久二维码,前者与过期时间,最长是1800s。
    生成二维码你需要调用3个接口,
    第一个是access_token
    第二个是生成ticket接口
    第三个是通过第二个接口生成的ticket来换取二维码图片。

    $access_token = " xDx0pD_ZvXkHM3oeu5oGjDt1_9HxlA-9g0vtR6MZ-v4r7MpvZYC4ee4OxN97Lr4irkPKE94tzBUhpZG_OvqAC3D3XaWJIGIn0eeIZnfaofO1C3LNzGphd_rEv3pIimsW9lO-4FOw6D44T3sNsQ5yXQ";//假定获取的ACCESS TOKEN为这段代码。
    
    //临时二维码
    $qrcode = '{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 10000}}}';
    //永久二维码
    $qrcode = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 1000}}}';
    
    $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=$access_token";//创建ticket接口
    $result = https_request($url,$qrcode);
    $jsoninfo = json_decode($result, true);
    $ticket = $jsoninfo["ticket"];
    
    function https_request($url, $data = null){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
    
    
    $ticket = "gQHi8DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0UweTNxNi1sdlA3RklyRnNKbUFvAAIELdnUUgMEAAAAAA==";//获取ticket的字符串
    
    $url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($ticket);//ticket对面二维码图片代码。
    $imageInfo = downloadWeixinFile($url);
    
    $filename = "qrcode.jpg";
    $local_file = fopen($filename, 'w');
    if (false !== $local_file){
        if (false !== fwrite($local_file, $imageInfo["body"])) {
            fclose($local_file);
        }
    }
    
    function downloadWeixinFile($url)
    {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, 0);    
        curl_setopt($ch, CURLOPT_NOBODY, 0);    //只取body头
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $package = curl_exec($ch);
        $httpinfo = curl_getinfo($ch);
        curl_close($ch);
        return array_merge(array('body' => $package), array('header' => $httpinfo)); 
    }
    

    在服务器空间运行这段代码,浏览器会生成一张二维码图片。

    获取非微信功能接口,比如获取交通信息、天气预报。

    这里我们以调去百度天气的api接口为例:参看以下连接文章即可
    http://www.jianshu.com/writer#/notebooks/6632557/notes/6780992/preview

    展开全文
  • 百度网盘下载 课程简介: 课程以PHP技术为基础,全面...此外,本书对于腾讯微生活和第三方微信接口也作了初步介绍,最后以一个具体实例介绍了微信公众账号的开发流程。在编写过程中,既重视内容的全面性,又注重实...
  • 最近用了很多网上的坑爹接口,都泪奔了,不说了,都是泪啊~  前两天做了个微信返回音乐的接口,先来看下... 技术很简单,首先访问百度音乐接口,传入音乐名称和歌手名称,然后百度会返回一个XML格式给你,里面包括
  • 而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能力。 请注意: 1、该接口暂时仅提供给已微信认证的服务号 2、虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月...
  • 微信开发的概念

    2019-12-03 23:23:16
    微信开发的概念 什么是微信开发 微信这个软件,提供了聊天、支付、分享、收藏等各种功能,同时用户基数庞大; 微信对外开放了很多接口和能力,程序员基于这些功能进行的二次开发,叫做微信开发 微信开放平台 微信...
  • 快递Api接口 & 微信公众号开发流程

    千次阅读 2017-01-05 14:43:19
    今天呢,简单给大家介绍一下微信公众号中怎么来使用快递Api接口,来完成我们的需求和业务场景。 开发语言:Nodejs,其中用到了Neo4j图形数据库准备工作首先,需要到微信公众平台注册账号 选择账号类型界面如下: ...
  • 微信公众号开发微信六大接口(2)

    千次阅读 2016-11-13 19:17:46
    以下内容来自于微信公众平台开发文档 当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应(现支持回复文本...
  • 微信开发与代码的编写(一) 微信开发环境的搭建 目前移动开发处于比较火的的趋势,很多的开发者都跃跃欲试,目前移动App开发领域主要分为以下几种类型    我在平时的工作中接触得比较多的就是基于Android的Native...
  • 微信开发----群发接口

    千次阅读 2017-08-24 14:54:04
    实现群发的接口很简单: 1.首先获取到access_token 2.获取到关注该公众号的所有的openid ... 使用说明:微信公众号无限群发接口,使用实例:  $test = new SendAllMsg("你的appId","你的appSecret");  $test->sendM
  • 微信公众号开发(二)基础接口

    千次阅读 2019-05-22 09:22:36
    微信公众号开发(二)基础接口 未经认证的订阅号只有基础接口的权限,基础接口主要包括三个部分:接收用户消息、发送被动响应消息和接收事件推送消息,开发者需要对用户消息在5秒内立即做出回应,微信服务器在五...
  • 微信公众平台API接口开发教程

    千次阅读 2014-01-29 16:44:25
    微信公众平台消息接口为开发者提供了一种新的消息处理方式。微信公众平台消息接口为开发者提供与用户进行消息交互的能力。对于成功接入消息接口微信公众账号,当用户发消息给公众号,微信公众平台服务器会使用http...
  • 上一篇《微信开发学习总结(一)——微信开发环境搭建》我们已经完成了微信开发的准备工作,准备工作完成之后,就要开始步入正题了。 一、微信公众平台的基本原理  在开始做之前,先简单介绍了微信公众平台的基本...
  • 实例: ...关键字:微信公众平台 微接口 接口100 API...在本文中,我们列出微信公众平台上可以使用的API接口以及举例如何在微信公众平台调用这些接口实现相应的功能。 接口调用说明: ① Appkey请使用的微信
  • 微信开发-音频播放

    2019-02-14 16:05:53
    微信中,需要通过InnerAudioContext 进行音频播放。 通过wx.createInnerAudioContext()接口可以创建一个音频实例InnerAudioContext 。 下面的代码则可以进行音频播放 var audio = wx....
  • 示例调用 index.php&lt;?php /** * Author: 惹妹子生气了 * Date: 2017-08-10 */ class MpWeixin { public $config; public $class_obj; public $is_check_signature = false; public function __......
  • C#微信开发

    千次阅读 2017-12-24 10:35:37
    C#开发微信门户及应用教程   作者:伍华聪   C#开发微信门户及应用(1)--开始使用微信接口 6 1、微信账号 6 2、微信菜单定义 7 3、接入微信的链接处理 8 4、使用开发方式创建菜单 14 5、我创建的菜单案例 17 C#...
  • 微信小程序调用qq音乐API接口

    千次阅读 2018-12-06 09:27:24
    微信小程序调用qq音乐API接口
1 2 3 4 5 ... 20
收藏数 8,153
精华内容 3,261
关键字:

微信开发 音乐接口