이 기사는 WeChat 공개 계정 개발에 대한 두 번째 완전한 튜토리얼을 소개합니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다. 지난 2년 동안 WeChat 공개 계정에 대한 연구와 소규모 프로그램이 많아지면서 더 많은 프로젝트가 탄생했습니다. 그래서 저는 포괄적인 제작 튜토리얼을 작성하려고 합니다. 물론 최고의 튜토리얼은 WeChat 작업 플랫폼의 문서입니다. 여기서는 제 작품의 제작 과정에 대해서만 이야기하겠습니다. 나는 내 자신의 github에 모든 관련 기사의 소스 코드를 호스팅합니다. 팔로우를 환영합니다: 주소
링크를 열려면 클릭하세요. 튜토리얼을 시작하겠습니다. 위의 첫 번째 섹션에서는 개발자 모드를 켜고 간단히
access_token을 획득하고 캐싱하는 방법과 간단한 테스트에 대해 설명했습니다. 이 섹션에서는 이 의 매개변수를 사용할 필요가 없습니다. access_token은 당분간 테스트 코드의 해당 부분에 대해 먼저 이야기하고 개선하겠습니다. (Baidu Maps 및 Turing Robots와 같은 기술을 소개하겠습니다.) 회사에서는 개발 중에 이러한 기술을 사용하므로 알려 드리겠습니다. 정보: 시작:
1. 메시지 수락:주소를 요청합니다. 요청 프로세스 중에 다양한 매개변수가 xml 형식을 사용하여 전송됩니다. 메시지를 수락한다는 것은 WeChat 요청 프로세스에서 관련 데이터를 얻는 것을 의미합니다. 코드에 사용된 변수 대체는 PHP 함수를 사용합니다.
sprintf
그 기능은 변수를 순차적으로 대체할 수 있게 해주는 기능에 불과합니다.
형식은 위와 같습니다. 코드는 다음과 같습니다. 텍스트 템플릿
// 텍스트 템플릿
$textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>";
코드는 다음과 같습니다:
//사진 템플릿
$picTpl="<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Image> <MediaId><![CDATA[%s]]></MediaId> </Image> </xml>";
테스트 결과는 다음과 같습니다.
1.3: 언어 메시지 허용:
코드는 다음과 같습니다.
}elseif($msgType=="voice"){ $contentStr ="语音消息MediaId为:".$postObj->MediaId.'具体内容为:'.$postObj->Recognition; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,'text', $contentStr); echo $resultStr; }
첨부된 사진은 제 테스트 결과입니다:
1.4 영상 메시지 수락:
代码如下:
elseif($msgType=="video"){ $contentStr ="视频消息MediaId为:".$postObj->MediaId; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,'text', $contentStr); echo $resultStr; }
代码:
elseif($MsgType == 'location'){ $contentStr = "经度为:".$postObj->Location_Y.'维度'.$postObj->Location_X.'具体地址为:'.$postObj->Label; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, 'text', $contentStr); file_put_contents('2', $resultStr); echo $resultStr; }
结果如下:
文档如下:
代码如下:
elseif($MsgType == 'link'){ $contentStr = '消息的标题为'.$postObj->Title; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, 'text', $contentStr); file_put_contents('2', $resultStr); echo $resultStr; }
结果如下:
上述几种情况都是使用的text模板接受的消息。设置微信回复的内容。接下来我们对回复内容的格式进行丰富:
格式如下:
代码如下:
代码如下:
结果如下:
模板:
$voiceTpl="<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Voice> <MediaId><![CDATA[%s]]></MediaId> </Voice> </xml>";
回复代码:
elseif($keyword == '语音'){ // 关于此MediaId需要从素材库中获得,没有可以临时使用消息返回的媒体ID $MediaId = '3XlXZ4-r2OTNYTFAkcmpWv4QjWtwg_15B4PytQJVwOAwHpOfc38mGZTSDkDXx9po'; $resultStr = sprintf($voiceTpl, $fromUsername, $toUsername, $time, 'voice',$MediaId); echo $resultStr; }
结果如下:
模板如下:
在线调试接口上传视频素材:
视频模板:
$VideoTpl="<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Video> <MediaId><![CDATA[%s]]></MediaId> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> </Video> </xml>";
回复代码如下:
elseif($keyword=="视频"){ //关于此MediaId需要从素材库中获得,没有可以使用临时消息返回的媒体id $MediaId="xxMyAoPbUt1u3q5Z95xrhafNzyvL3Tg08E-9Ub2m6db_Elj4XAJHr2pUOqLhREyB"; $Title = $Description ="视频还是好看的"; $resultStr = sprintf($VideoTpl, $fromUsername, $toUsername, $time, 'video', $MediaId, $Title,$Description); echo $resultStr; }
结果如下:
文档信息:
图文模板:
// 图文模板
$newsTpc="<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <ArticleCount>%d</ArticleCount> <Articles>%s</Articles> </xml>";
回复代码:
elseif($keyword=="图文"){ $data = array( array('Title'=>'图文消息','Description'=>'效果好像还不错啊','PicUrl'=>'http://mmbiz.qpic.cn/mmbiz_jpg/E3TENE8JsTAqus3ic5qEtt4wl14ibBu4UaobarzTVOP18Awt83hkZM0aI9XStapN4xay6JI4lfm0H7QnKSfxQyVA/0','Url'=>'http://xiaomi.com') ); file_put_contents('2',$data[0]['Title']); for ($i=0; $i <count($data); $i++) { $Articles .="<item> <Title><![CDATA[{$data[$i]['Title']}]]></Title> <Description><![CDATA[{$data[$i]['Description']}]]></Description> <PicUrl><![CDATA[{$data[$i]['PicUrl']}]]></PicUrl> <Url><![CDATA[{$data[$i]['Url']}]]></Url> </item>"; } $count = count($data); $resultStr = sprintf($newsTpc, $fromUsername, $toUsername, $time, 'news',$count,$Articles); echo $resultStr; }
结果如下:
到此为止我们对所有的接受和回复的代码进行的书写和演示,所有的源码我会放在我的github上面,大家可以下载和关注,这一节到此为止,下一节开始使用我们的access_token开始我们的自定义菜单。
相关推荐:
위 내용은 WeChat 공개 계정 개발 완료 튜토리얼 2의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!