微信三、歌曲点播
程序员文章站
2022-06-13 15:30:41
...
歌曲点播
微信点歌其实已有很多博客写过,不过重复超超*就当锻炼锻炼身体嘛。先上效果图
回复2.2@谢谢你的爱,它先会去找这首歌,然后返回回来,如果找的不是你想点的歌曲,则需要中上歌手名称,如2.2@谢谢你的爱谢霆锋
代码部分如下
1、统一回复调用方法
休闲豆http://www.xiuxiandou.com
微信点歌其实已有很多博客写过,不过重复超超*就当锻炼锻炼身体嘛。先上效果图
回复2.2@谢谢你的爱,它先会去找这首歌,然后返回回来,如果找的不是你想点的歌曲,则需要中上歌手名称,如2.2@谢谢你的爱谢霆锋
代码部分如下
1、统一回复调用方法
//这里只对文本消息进行处理
private function reply($data){
if('text' == $data['MsgType']){
$text=$data["Content"];
if($text=="?"){
return $this->get_main_datas();
}
$_menu_text=strpos($text,"@")===false?$text:(string)doubleval($text);//当需要查询时,指令为1.1@xxx使用进行doubleval转换
if(array_key_exists($_menu_text, $this->all_info)){//存在于菜单中,当输入,1 2 3 时
return $this->get_replay_datas($_menu_text,$text,$data["FromUserName"]);
}
return $this->hello();
} elseif('event' == $data['MsgType'] && 'subscribe' == $data['Event']){
//订阅写入数据表
return $this->hello();
//$reply = array('欢迎您关注桂林小魔方童装公众助手! 打开我们的网站:http://aidemofang.com 可以了解最新的款式和价格.', 'text');
} else {
exit;
}
}
//取得回复的信息
private function get_replay_datas($_menu_text,$text,$fromUser){
$menu_text=strlen($_menu_text)==1?$_menu_text-1:$_menu_text;
$method = $this->get_method($menu_text);
$param=null;
if(strpos($text,"@")!==false){
$arr = preg_split("/@/", $text);
$param=$arr[1];
}
return $this->$method($param,$fromUser);
}
2、点歌实现//歌曲点播
public function get_song($song_title,$fromUser){
//$song_title="春天里";
$m_param=array(
"op" =>"7",
"mode" =>"1",
"count" =>"1",
"title" =>$song_title
);
$song_datas=http("http://box.zhangmen.baidu.com/x",$m_param);
$song_utf8=utf8($song_datas,"gbk");
preg_match_all('/\(.*?)\/s', $song_utf8, $matchs);
if(count($matchs)>1){
$song_name=$matchs[1][0];
}
if(empty($song_name)){
return array("未找到这首歌,检查一下网络或咱们换一首吧.","text");
}
$param=array(
"op" =>"12",
"count" =>"1",
"title" =>trim("$song_name")
);
//查找作者的这首歌
$datas=http("http://box.zhangmen.baidu.com/x",$param);
$xml = new DOMDocument();
$xml->loadXML($datas);
$lst=$xml->getElementsByTagName('encode');
//普通质量地址
$item=$lst->item(0);
$pre=$item->nodeValue;
$suffix=$item->nextSibling->nodeValue;
$MusicURL=str_replace(strrchr($pre, "/"),"",$pre)."/".str_replace(strrchr($suffix, "&"),"",$suffix);
//高质量地址
$item=$lst->item(0);
$pre=$item->nodeValue;
$suffix=$item->nextSibling->nodeValue;
$HQMusicUrl=str_replace(strrchr($pre, "/"),"",$pre)."/".str_replace(strrchr($suffix, "&"),"",$suffix);
$datas=array();
$datas[]=str_replace('$', "", $song_name);//音乐标题
$datas[]="来自互联网";//音乐描述
$datas[]="$MusicURL";//音乐链接
$datas[]="$HQMusicUrl";//高质量音乐链接,WIFI环境优先使用该链接播放音乐
$this->sendLyric(str_replace('$$', "-", $song_name),$fromUser);
return array($datas,"music");
}
private function sendLyric($song_name,$fromUser){
$param=array(
"key" => "free",
"appid" => "0",
"msg" => "歌词".$song_name
);
$datas=http("http://api.ajaxsns.com/api.php",$param);
$json=json_decode($datas);
if($json->result==0){
$content=str_replace("{br}","\n",$json->content);
$content.="\n\n小助手:回复 @ 进入主界面";
import('@.ORG.ThinkWechat');
$weixin = new ThinkWechat ();
$result=$weixin->sendMsg($content, $fromUser, "text" );//发送歌词
Log::write(" init data ->".$fromUser." ,content =$content");
Log::write("result -> ".print_r($result,true));
}
} \>
休闲豆http://www.xiuxiandou.com
AD:真正免费,域名+虚机+企业邮箱=0元
上一篇: 判断是否为空之后的操作