标签:blog http 使用 os io ar 问题 代码
前一段在CSDN上跟了一篇帖子然后不少同学都来添加我的QQ来询问一些关于微信公共平台的搭建和开发问题。其实本人觉得微信公共平台开发的门槛并不高,是大家把它想的太神秘。因为是本博第一篇文章如果写的不好还请大家多多谅解。 跳过微信公共账号的申请和微信公共平台的基本功能,如果这点有需要帮助的可以直接问问自己的小学老师。直奔主题,在主菜单选择“功能->高级功能”然后进入“开发模式”开启开发模式病点击“成为开发者”接口配置信息先空着,可以在这里找到示例代码。 现在到了搭建微信服务器的步骤了,你可以选择SAE、BAE或者云主机来搭建,本人将会用极少的篇幅来将这几种方法一一做个简短的说明。
示例代码解读:
*其他方法就不做赘述了 然后我们就开始coding吧!
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();
首先注释掉$wechatObj->valid(); 然后调用responseMsg()方法;这时候你就可以发送信息到你的微信平台,将会得到“Welcome to wechat world!”这条信息,也可以修改$contentStr = "Welcome to wechat world!";为你向要得到的信息;
根据官方的API 4.5中我们可以看到参数Even中的subscribe,由于官方文档没有提取这两个参数,我们需要进行提取。我们在程序中添加变量$type和$customevent,而提取这个参数的方法我们可以参考官方代码中的ToUserName的方法。而处理关注时间,我们可以使用if语句,当$type的值为event,$customevent的值为subscribe时,返回关注信息;
$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$type=$postObj->MsgType;
$customevent=$postObj->Event;
$keyword = trim($postObj->Content);
$time = time();
$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>";
if ($type=="event" and $customevent=="subscribe") {
# code...
$contentStr="感谢您的关注! \n 本微信每周将会不定时推送翊仰最近看的一些书或新闻的看法和感想,
以及最近翊仰关注的一些技术领域的学习经验!\n 回复“关于”查看翊仰一些联系方式";
$msgType="text"
resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
}
代码实例如下:
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$type=$postObj->MsgType;
$customevent=$postObj->Event;
$latitude=$postObj->Location_X;//通过地图获取纬度
$longitude=$postObj->Location_Y;//通过地图获取精度
$keyword = trim($postObj->Content);
$time = time();
$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>";
switch ($type) {//分类信息类型
case "event":
if ($customevent="subscribe") {
$contentStr="感谢您的关注! \n 本微信每周将会不定时推送翊仰最近看的一些书或新闻的看法和感想,
以及最近翊仰关注的一些技术领域的学习经验!\n 回复“关于”查看翊仰一些联系方式 \n 查看翊仰的blog:https://neikubar.farbox.com/ 可搜索以往文章。";
}
break;
case "location":
$contentStr="你的纬度是{$latitude},经度是{$longitude},定位已完成!";
break;
case ‘text‘:
switch ($keyword) {
case ‘关于‘:
$contentStr="翊仰的微博:Http://www.weibo.com/weangyiyang \n 翊仰的blog:https://neikubar.farbox.com/";
break;
default:
$contentStr="此功能尚未开放";
break;
}
break;
default:
$contentStr="此功能尚未开放";
break;
}
$msgType = "text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else {
echo "";
exit;
}
}
标签:blog http 使用 os io ar 问题 代码
原文地址:http://www.cnblogs.com/wangyiyang/p/3928930.html