前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信开发--微信公众号(二)

微信开发--微信公众号(二)

作者头像
生南星
发布2019-07-22 14:39:08
13.3K0
发布2019-07-22 14:39:08
举报
文章被收录于专栏:生南星生南星

微信公众号回复微信客户端发来的消息.

1. 回复微信客户端发来的文本消息

需要连接第三方的服务.这里选用的是 图灵机器人. 注册账号,并创建一个图灵机器人.然后可通过机器人设置查看自己的apikey.

发起请求的url : http://www.tuling123.com/openapi/api?key=你的apikey&info=接收的文本内容;

将网址复制在浏览器里会得到一下格式的内容(我写的文本内容是 '你好' ):

代码语言:javascript
复制
{"code":100000,"text":"好吧,你也好。"}

a. 发起url请求,得到json串

b. 解析得到的json串,取出里面的 "text"

c. 调用 微信开发--微信公众号(一) 回复文本的方法

d. 调用图灵机器人回复文本消息的方法

代码示例(wechart.php) :

代码语言:javascript
复制
// 图灵机器人回复消息--文本
    function tuLingRobot($obj){
        // 获取用户输入的内容
        $content = $obj->Content;
        $url = "http://www.tuling123.com/openapi/api?key=b8309f5ca82849f5a9c5466195b08a6e&info={$content}";
        $jsonStr = httpGet($url);
        $objdata = json_decode($jsonStr);
        $text = $objdata->text;
        sendTextMsg($obj, $text);
    }
代码语言:javascript
复制
// 调用
 // 普通消息
switch($xmlObj->MsgType){
     case "text":{
        tuLingRobot($xmlObj);
        break;
     }
}

2. 回复微信客户端发来的图片消息

回复时会根据图片的 mediaId 进行回复. 微信客户端发送的图片服务器回复的是一个有 mediaId 的json串.

代码语言:javascript
复制
// 图片
    function sendCommonImage($obj){
        $to = $obj->FromUserName;
        $from = $obj->ToUserName;
        $time = time();
        $mediaId = $obj->MediaId;

        $msg = <<<MSG
        <xml>
        <ToUserName><![CDATA[{$to}]]></ToUserName>
        <FromUserName><![CDATA[{$from}]]></FromUserName>
        <CreateTime>{$time}</CreateTime>
        <MsgType><![CDATA[image]]></MsgType>
        <Image>
          <MediaId><![CDATA[{$mediaId}]]></MediaId>
        </Image>
        </xml>
MSG;
        echo $msg;
    }
代码语言:javascript
复制
// 调用
// 普通消息
switch($xmlObj->MsgType){
   case "image":{
      sendCommonImage($xmlObj);
      break;
    }
 }

3. 微信客户端发来地理位置,回复当地的天气(实时)

这里仍然需要连接第三方服务器,我选用的是 心知天气 ,注册之后点击右上角的控制台--左侧产品管理 免费版--自动生成公钥和私钥--进入API文档--左侧 天气类--天气实时状况 , 这时你应该看到了 请求地址示例 和 返回数据示例.

划重点: 获取指定城市的天气实况。付费用户可获取全部数据,免费用户只返回天气现象文字、代码和气温3项数据。注:中国城市暂不支持云量和露点温度。

a. 获取发来地址的经纬度

b. 发起get请求,解析得到的json串

c. 调用 微信开发--微信公众号(一) 回复文本的方法

d. 调用图灵机器人回复文本消息的方法

代码语言:javascript
复制
// 回复位置天气状况
    function sendWeather($obj){
        // 获取经纬度
        // 维度
        $IX = $obj->Location_X;
        // 经度 
        $IY = $obj->Location_Y;

        $url = "https://api.seniverse.com/v3/weather/now.json?key=SOFLe1lnznLDeabGG&location={$IX}:{$IY}&language=zh-Hans&unit=c";

        $tq = httpGet($url);
        $objdata = json_decode($tq);
        $objw = "当前城市:".$objdata->results[0]->location->name." 天气:".$objdata->results[0]->now->text." 温度:".$objdata->results[0]->now->temperature."℃";
        sendTextMsg($obj, $objw);
    }
代码语言:javascript
复制
// 调用
 // 普通消息
switch($xmlObj->MsgType){
    case "location":{
       sendWeather($xmlObj);
       break;
    }
}

效果示例:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生南星 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档