亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

服務端

我們在入門小教程一節中以服務端為例講解了一個基本的消息的處理,這里就不再講服務器驗證的流程了,請直接參考前面的入門實例即可。

服務端的作用,在整個微信開發中主要是負責 接收用戶發送過來的消息,還有 用戶觸發的一系列事件

首先我們得理清 消息與事件的回復邏輯,當你收到用戶消息后(消息由微信服務器推送到你的服務器),在你對消息進行一些處理后,不管是選擇回復一個消息還是什么不都回給用戶,你也應該給微信服務器一個 “答復”,如果是選擇回復一條消息,就直接返回一個消息 xml 就好,如果選擇不做任何回復,你也得回復一個 空字符串 或者 字符串 SUCCESS(不然用戶就會看到 該公眾號暫時無法提供服務)。

基本使用

SDK 中使用 $officialAccount->server->push(callable $callback) 來設置消息處理器:

<?php

$server = $officialAccount->server;

/** 注冊消息事件回調 */
$server->push(function (\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message) {
    // $message->getType(); // 消息類型:消息類型:event、text ......
    return new \EasySwoole\WeChat\Kernel\Messages\Text("您好!歡迎使用 EasySwoole WeChat!");
});

這里我們使用 push 傳入了一個 閉包(Closure),該閉包接收一個參數 $message 為消息對象(類型為實現了 \EasySwoole\WeChat\Kernel\Contracts\MessageInterface 接口的實例對象),你可以在全局消息處理器中對消息類型進行篩選:

<?php

$server = $officialAccount->server;

$server->push(function (\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message) {
    switch ($message->getType()) {
        case 'event':
            $text = '收到事件消息';
            break;
        case 'text':
            $text = '收到文字消息';
            break;
        case 'image':
            $text = '收到圖片消息';
            break;
        case 'voice':
            $text = '收到語音消息';
            break;
        case 'video':
            $text = '收到視頻消息';
            break;
        case 'location':
            $text = '收到坐標消息';
            break;
        case 'link':
            $text = '收到鏈接消息';
            break;
        case 'file':
            $text = '收到文件消息';
            break;
        // ... 其它消息
        default:
            $text = '收到其它消息';
            break;
    }

    // ...

    return new \EasySwoole\WeChat\Kernel\Messages\Text($text);
});

當然,因為這里 push 接收一個 callable 的參數,所以你不一定要傳入一個 Closure 閉包,你可以選擇傳入一個函數名,一個 [$class, $method] 或者 Foo::bar 這樣的類型。

注冊多個消息處理器

有時候你可能需要對消息記日志,或者一系列的自定義操作,你可以注冊多個 handler

<?php

$server = $officialAccount->server;

$server->push(MessageLogHandler::class);
$server->push(MessageReplyHandler::class);
$server->push(OtherHandler::class);
$server->push(...);

注意:

  • 最后一個非空返回值將作為最終應答給用戶的消息內容,如果中間某一個 handler 返回值 false, 則將終止整個調用鏈,不會調用后續的 handlers
  • 傳入的自定義 Handler 類需要實現 \EasySwoole\WeChat\Kernel\Contracts\EventHandlerInterface 接口。

注冊指定消息類型的消息處理器

我們想對特定類型的消息應用不同的處理器,可以在第二個參數傳入類型篩選:

注意,第二個參數必須是 \EasySwoole\WeChat\Kernel\Messages\Message 類的常量。

<?php

use EasySwoole\WeChat\Kernel\Messages\Message;

$server = $officialAccount->server;

$server->push(ImageMessageHandler::class, Message::IMAGE); // 圖片消息
$server->push(TextMessageHandler::class, Message::TEXT); // 文本消息

// 同時處理多種類型的處理器
// 當消息為 三種中任意一種都可觸發
$server->push(MediaMessageHandler::class, [Message::VOICE, Message::VIDEO, Message::SHORT_VIDEO]);

請求消息的屬性

當你接收到用戶發來的消息時,可能會提取消息中的相關屬性,參考:

請求消息基本屬性 (以下所有消息都有的基本屬性):

  • ToUserName 接收方帳號(該公眾號 ID
  • FromUserName 發送方帳號(OpenID, 代表用戶的唯一標識)
  • CreateTime 消息創建時間(時間戳)
  • MsgId 消息 ID64 位整型)

文本:

  • MsgType text
  • Content 文本消息內容

圖片:

  • MsgType image
  • MediaId 圖片消息媒體 id,可以調用多媒體文件下載接口拉取數據。
  • PicUrl 圖片鏈接

語音:

  • MsgType voice
  • MediaId 語音消息媒體 id,可以調用多媒體文件下載接口拉取數據。
  • Format 語音格式,如 amrspeex
  • Recognition * 開通語音識別后才有

請注意,開通語音識別后,用戶每次發送語音給公眾號時,微信會在推送的語音消息 XML 數據包中,增加一個 Recongnition 字段

視頻:

  • MsgType video
  • MediaId 視頻消息媒體 id,可以調用多媒體文件下載接口拉取數據。
  • ThumbMediaId 視頻消息縮略圖的媒體 id,可以調用多媒體文件下載接口拉取數據。

小視頻:

  • MsgType shortvideo
  • MediaId 視頻消息媒體 id,可以調用多媒體文件下載接口拉取數據。
  • ThumbMediaId 視頻消息縮略圖的媒體 id,可以調用多媒體文件下載接口拉取數據。

事件:

  • MsgType event
  • Event 事件類型 (如:subscribe (訂閱)、unsubscribe (取消訂閱) ..., CLICK 等)

掃描帶參數二維碼事件:

  • EventKey 事件 KEY 值,比如:qrscene_123123qrscene_ 為前綴,后面為二維碼的參數值
  • Ticket 二維碼的 ticket,可用來換取二維碼圖片

上報地理位置事件:

  • Latitude 23.137466 地理位置緯度
  • Longitude 113.352425 地理位置經度
  • Precision 119.385040 地理位置精度

自定義菜單事件:

  • EventKey 事件 KEY 值,與自定義菜單接口中 KEY 值對應,如:CUSTOM_KEY_001www.qq.com

地理位置:

  • MsgType location
  • Location_X 地理位置緯度
  • Location_Y 地理位置經度
  • Scale 地圖縮放大小
  • Label 地理位置信息

鏈接:

  • MsgType link
  • Title 消息標題
  • Description 消息描述
  • Url 消息鏈接

文件:

  • MsgType file
  • Title 文件名
  • Description 文件描述,可能為 null
  • FileKey 文件 KEY
  • FileMd5 文件 MD5
  • FileTotalLen 文件大小,單位字節

回復消息

回復的消息可以為 null,此時 SDK 會返回給微信一個 "SUCCESS",你也可以回復一個普通字符串,比如:歡迎關注 EasySwoole WeChat.,此時 SDK 會對它進行一個封裝,產生一個 \EasySwoole\WeChat\Kernel\Messages\Text 類型的消息并在最后的 $officialAccount->server->serve(); 時生成對應的消息 XML 格式。

如果你想返回一個自己手動拼的原生 XML 格式消息,請返回一個 \EasySwoole\WeChat\Kernel\Messages\Raw 實例即可。

消息轉發給客服系統

參見:多客服消息轉發

關于消息的使用,請參考 消息 章節。

亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    在线免费高清一区二区三区| 国产视频在线观看一区| 欧美精品入口| 国产亚洲一区在线播放| 97超碰人人模人人爽人人看| 精品一区二区视频| 中文字幕欧美日韩一区二区三区| 亚洲小说欧美另类社区| 久久综合九色99| 日韩视频在线观看国产| 亚洲东热激情| 精品国产乱码久久久久久郑州公司| 亚洲7777| 亚洲欧美日本日韩| 欧美日韩在线播放一区二区| 亚洲图色在线| 精品久久久久久一区| 欧美日韩四区| 国产成人精品日本亚洲11| 伊人av成人| 99re在线观看视频| 欧美国产高清| 国产精品高清一区二区三区| 欧美福利网址| 高清av免费一区中文字幕| 自拍亚洲欧美老师丝袜| 97久久夜色精品国产九色 | 涩涩涩999| 国产毛片一区| 亚洲欧洲精品一区二区| 国产精品日韩一区二区| 欧美深深色噜噜狠狠yyy| 亚洲视频www| 亚洲精品国产精品国自产观看| 国产精品久久久久久久久久妞妞| 日韩.欧美.亚洲| 久久aⅴ国产紧身牛仔裤| 正在播放国产精品| 久久99精品久久久久久青青日本| 亚洲午夜电影| 亚洲综合好骚| 黄色小网站91| 欧美午夜精品久久久久久蜜| 一区二区三区四区五区视频 | 国产亚洲精品久久飘花| 亚洲电影在线| 欧美日韩在线精品| 国产视频亚洲| 久久99精品久久久久久秒播放器 | 欧洲一区二区在线| 国内揄拍国内精品久久| 亚洲伊人观看| 久久久久网址| 亚洲午夜电影| 国产欧美日韩亚洲| 最新不卡av| 先锋亚洲精品| 区一区二区三区中文字幕| 欧美日韩在线大尺度| 91亚色免费| 一本一本a久久| 夜夜爽av福利精品导航 | 国产欧美69| 女女同性女同一区二区三区91| 亚洲综合视频一区| 91福利入口| 欧美成人中文| 国产精品日韩一区二区三区| 欧美成人亚洲| 国内成+人亚洲| 在线精品亚洲| 欧美裸体网站| 午夜在线a亚洲v天堂网2018| 日韩亚洲视频在线| 91精品国产综合久久久久久丝袜| 亚洲图片在线观看| 91中文字精品一区二区| 欧美体内she精视频在线观看| 97视频资源在线观看| 欧美+亚洲+精品+三区| 成人免费在线看片| 国内精品一区二区| 日韩精品久久久| 老司机精品福利视频| 国产真实久久| 手机看片福利永久国产日韩| 久久婷婷av| 亚洲免费精品| 欧美福利精品| 欧美在线一二三区| 古典武侠综合av第一页| 国产综合色产| 亚洲精品国产一区| 精品免费一区二区三区蜜桃| 国产精品一区免费观看| 欧美久久久久久| 午夜精品电影在线观看| 精品国产中文字幕| 操人视频欧美| 久久久久久网| 另类av一区二区| 日韩午夜在线电影| 欧美日韩亚洲三区| 中文字幕久精品免| 日本不卡免费新一二三区| 国产精品久久久久久久小唯西川| 国产精品区一区| 亚洲精品四区| 91久久久久| 国产综合网站| 亚洲成人在线| 亚洲精品影院在线观看| 激情久久中文字幕| 国产专区一区| 日韩视频精品| 亚洲一区不卡| 西西裸体人体做爰大胆久久久| 一区二区精品国产| 中文精品一区二区三区| 一本色道久久综合一区| aa日韩免费精品视频一| 国产精品久久久久久模特| 一区二区三区四区五区视频 | 亚洲一区自拍| 久久综合九色99| 3d精品h动漫啪啪一区二区| 性娇小13――14欧美| 噜噜爱69成人精品| 99久久免费国| 国产一区二区不卡视频在线观看| 国产精品亚洲一区| 久久精品国产99精品国产亚洲性色| 国产一区免费在线| 欧美一区免费视频| 亚洲精品在线免费看| 一区二区成人国产精品 | 国产一区二区高清视频| 久久精品电影| 激情伦成人综合小说| 欧美一区观看| 欧美精品免费观看二区| 一区二区冒白浆视频| 97久久人人超碰caoprom欧美| 国产乱子伦精品| 日韩黄色影视| 亚洲国产专区校园欧美| 久久亚洲免费| 欧美精品一区三区在线观看| 在线观看日韩羞羞视频| 99精品视频免费| http;//www.99re视频| 日本婷婷久久久久久久久一区二区| 欧美精品v日韩精品v国产精品| 在线视频精品一区| 久久久神马电影| 国产精品theporn| 久久国产精品亚洲77777| 久久涩涩网站| 狠狠色噜噜狠狠色综合久| 老司机午夜精品视频在线观看| 女女同性女同一区二区三区91| 午夜久久福利| av一区和二区| 欧美午夜在线| 国产精品区二区三区日本| 亚洲欧洲日韩综合二区| 新67194成人永久网站| 日韩国产欧美一区| 免费看亚洲片| 性欧美.com| 91精品网站| 一区免费视频| 亚洲成色最大综合在线| 国产嫩草一区二区三区在线观看 | 999在线观看精品免费不卡网站| 国产伦精品一区二区三区在线 | 一区二区日本伦理| 久久精品国产清高在天天线| 亚洲精品中文字幕乱码三区不卡 | 亚洲精品人成| 国产激情一区二区三区在线观看| 欧美天堂亚洲电影院在线观看| 国产视频一区二区不卡| 一区二区三区四区国产| 在线观看免费91| 精品欧美一区二区三区久久久| 一本色道久久综合亚洲精品婷婷| 日韩一区二区三区资源| 久久久久久精| 亚洲毛片网站| 欧美区一区二| 手机成人在线| 国产在线欧美日韩| 亚洲专区一区| 亚洲黄色大片| 欧美三级视频| 欧美1区视频| 亚洲欧洲免费无码| 日本一区二区三区免费观看| 粉嫩精品一区二区三区在线观看 |