1. 程式人生 > >egg + co-wechat快速搭建微信公眾號對接服務

egg + co-wechat快速搭建微信公眾號對接服務

開始寫業務

$ npm i -S koa co-wechat

因為co-wechat是個中介軟體,所以我們也把它放到middleware下面去,不過還需要進行一層封裝。
在app目錄下新建middleware目錄,並新建wechat.js檔案。

// app/middleware/wechat.js
const wechat = require('co-wechat');

module.exports = (options, app) => {
    return wechat(options).middleware(async (message, ctx) => {
        // TODO
    });
};

因為co-wechat的呼叫還是有點跟標準不一樣的,只export整個包是不行的,要按如上封裝一下(參考使用koa的中介軟體)。TODO就是業務程式碼,後面還會把它豐富,並抽離到service。但是!!!!!由於後面還有一步微信驗證,所以這裡暫時還不能寫任何程式碼!!!不能寫任何程式碼!!!不能寫任何程式碼!!!

然後配置一下router,新增兩項

// app/router.js
const wechat = app.middlewares.wechat({
    token: '微信後臺配置',
    appid: '微信後臺提供',
    encodingAESKey: '微信後臺配置此時寫成空字串就行了'
  });
  router.get('/wechat', wechat);
  router.post('/wechat', wechat);
上面聲明瞭一個wechat變數,來返回一個接受了config引數的結果,其結果是個function,可參考co-wechat的說明去理解。下面的get、post都要繫結,是因為get用來通過微信後臺配置時候的驗證用的,post才是正常的業務邏輯,此處需要結合微信的文件去理解,不理解也沒關係,後面會有另外一篇純手動實現微信對接的文章去梳理。

最後,關掉egg的csrf

// config/config.default.js  
  config.security = {
    csrf: {
      enable: false,
      ignoreJSON: true
    }
  };
OK,此時已經距離成功只有一步之遙了。開啟你自己的微信測試公眾號,在介面配置資訊修改裡填入資訊。記得開啟花生殼,url輸入花生殼裡對映的域名,別忘了在後面加上/wechat。如:http://yoururl.com/wechat

點選“提交”,如果驗證成功,證明已經綁上了,如果不成功,請回頭走一遍每一個細節。如果繫結成功了,下面就可以寫一些真正的業務程式碼了。還記得上面提到的 app/middleware/wechat.js 裡面的 TODO部分嗎?可以往裡面加東西了。但是如果你還要重複上面的“介面配置資訊修改”操作,那麼記得把這部分暫時註釋掉。

編輯 app/middleware/wechat.js

// app/middleware/wechat.js
const wechat = require('co-wechat');

module.exports = (options, app) => {
    return wechat(options).middleware(async (message, ctx) => {
        // TODO
        let { MsgType, Content } = message;
        if (MsgType === 'text') {
            let reply;
            switch (Content) {
                case '12345':
                    reply = '上山打老虎';
                    break;
                case 'kiki':
                    reply = '是我媳婦';
                    break;
                default:
                    const msgs = [
                        '我媳婦老漂亮了',
                        '我媳婦會做飯',
                        '我媳婦會煎藥',
                        '我媳婦吃的可多了',
                        '我媳婦可能睡了',
                        '我媳婦叫kiki',
                        '我媳婦會打太極拳',
                        '我媳婦總掉頭髮',
                        '我媳婦可愛哭了',
                        '我媳婦有點二'
                    ];
                    let rand = Math.floor(Math.random() * msgs.length);
                    reply = msgs[rand];
            }
            return reply;
        } else {
            return '歡迎光臨';
        }
    });
};
然後就可以去公眾號裡發信息,各種調戲了。理論上,這部分業務程式碼應該抽到service裡面,包括之前的一些config資訊,也應該放到config裡面,此處就不做展開了,留給大家自由發揮吧。在正確的結果基礎上改,才知道自己哪裡寫的有問題不是。

注意事項

最後重申一下注意事項:

  1. 除錯時記得開啟花生殼
  2. 本機的埠號要與內網穿透的埠號匹配上
  3. 記得把egg的csrf關掉
  4. 微信後臺的各種id、token要跟程式碼裡的對上
  5. 在微信後臺的“介面配置資訊修改”操作時,記得把業務程式碼先暫時註釋掉

相關推薦

egg + co-wechat快速搭建公眾對接服務

開始寫業務$ npm i -S koa co-wechat因為co-wechat是個中介軟體,所以我們也把它放到middleware下面去,不過還需要進行一層封裝。在app目錄下新建middleware目錄,並新建wechat.js檔案。// app/middleware/wechat.js const we

koa2 + co-wechat快速搭建公眾對接服務

準備工作測試公眾號,可用微信公眾平臺提供的測試號(介面測試號申請)node v7.6.0以上,koa2依賴async(koa中文官網)把測試公眾號的二維碼發給你的ta,啟動服務後開撩初始化專案並安裝依賴$ mkdir koa-wechat && cd koa-

用Java搭建公眾(二)生成access_token

當自己的程式需要訪問微信的HTTP介面時,需要傳遞access_token作為校驗的引數。access_token需要通過APPID和APPSecret祕鑰來生成,有效期是7200秒,2小時。access_token最好是做成全域性變數共享,然後由一個執行緒定時去重新整理,這樣可以減少access_

django搭建公眾後臺——自動回覆(7.20)

其實大部分還是依賴開發包,然後這個流程一直沒怎麼搞清楚所以略坑。 接入驗證的時候用的GET方法帶引數,接收引數然後驗證並返回echostr。 使用者向伺服器傳送訊息時,如果是明文傳送就直接request.body獲取xml包然後處理就好了,和GET的無關,如

nodejs + BAE 搭建公眾開發平臺

閒來無事建立了一個微信公眾賬號,名曰“深圳生活小助手”, 關注的人不多,平時發一些深圳新聞,趣事啥的,為了豐富公眾號的內容,準備新增一些便民查詢功能,例如天氣預報、快遞查詢等等。 於是就有了本文的內容。 深圳的讀者掃描關注支援下啊。。。 閒話不多說,本文主要介紹的就

Python-快速實現公眾自動回覆(聊天機器人)

原理:通過微信公眾號提供的開發者模式,利用Python搭建環境,實現自動回覆,回覆內容通過呼叫圖靈機器人的API 配置:伺服器(這裡是阿里雲主機,Ubuntu),公眾號,圖靈機器人 一,公眾平臺上進行開發配置 三種加密方式,按需選擇。第一種最簡單,最不安全(我這裡選擇的第

搭建公眾測試環境

1.需要一個外網對映內網地址,我是用natapp工具,花錢買了一個月的外網固定域名    window系統直接雙擊執行natapp.exe,2.註冊微信測試號   https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo3.改變ap

樹莓派與公眾對接(python)

需要 lan upd alt cnblogs col spa render 80端口 一 內網穿透,讓外網可以訪問樹莓派 二 樹莓派對接微信 需要安裝webpy和python-lxml git clonegit://github.com/webpy/webpy.git

搭建訂閱後臺服務(筆記)

準備域名 微信公眾平臺需要配置伺服器地址 URL 訪問,在實驗開始之前,我們要準備域名。 域名註冊 如果您還沒有域名,可以在騰訊雲上選購,過程可以參考下面的視訊。 域名解析 域名購買完成後, 需要將域名解析到實驗雲主機上,實驗雲主機的 IP 為: <您的 CVM IP 地址&g

公眾 - 網頁服務 - 分享介面

需要有一個認證的微信公眾號,訂閱號、服務號都可以,主體不能是”個人“ 需要有一個域名,域名不能含有中文,域名需要備案 目錄 一、公眾號與域名繫結 二、 IP白名單 三、準備工作 3.1 引入JS檔案 四、 後端(.net)生成需要的引數 4.1 獲取a

公眾服務)接入開發(2)之授權登陸

如果使用者在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取使用者基本資訊,進而實現業務邏輯。 1. 授權回撥域名的說明: (1)、這裡填寫的是域名(是一個字串),而不是URL,因此請勿加http://等協議頭; (2)、授權

公眾對接第三方平臺開發

前言         微信公眾號對接第三方開發的前提就是授權。首先是開通開放平臺。開通時填寫資料包括公司資訊,還需要300大洋。開放平臺包括移動應用、網站應用、公眾號賬號、小程式、第三方平臺。這裡我們開通第三方平臺。       &nb

公眾對接淘寶客系統,淘口令解析

現在大家做淘寶客公眾號的比較多,最近也是開發了淘寶客系統,解析淘口令也算是比較煩心的一件事了。直接上思路+程式碼,不囉嗦。 首先我們判斷,使用者傳送的訊息中是否含有https://m.tb.cn,一般淘口令複製出來都是這個連結 if( Content.indexOf("https://m

公眾對接

<?php class UserAction extends Action { //獲取微信網頁授權 public function wechatLogin(){ $state=$_GET['state']; if(!isset($state) || empty($state)){ $st

公眾接入服務器驗證(Go實現)

value 實現 checkout 微信公眾號 view -o ack nsh array 1 基本流程 將token、timestamp、nonce三個參數進行字典序排序 將三個參數字符串拼接成一個字符串進行sha1加密 開發者獲得加密後的字符串可與signature對

公眾對接第三方平臺(全網釋出 java)

目錄 目錄 背景 第三方平臺 程式碼開發 結束語 背景   由於平臺對接的使用者不斷增加,微信會進行一個檢測。如果你對接的微信公眾平臺多次使用同一個地址進行開發者對接。那麼它會認為你這個網站存在風險-官方解釋,或者你對接微信公眾號平臺

Python快速搭建自動回覆公眾

Python快速搭建自動回覆微信公眾號 在之前的一篇文章 Python利用 AIML 和 Tornado 搭建聊天機器人微信訂閱號 中用 aiml 實現了一個簡單的英文聊天機器人訂閱號。但是隻能處理英文訊息,現在用 圖靈機器人 來實現一箇中文的聊天機器人訂閱號。 這裡主要介紹如何

java實現公眾房卡牛牛六人平臺開發搭建文章采集接口程序

package ecs util 系統 public address 用戶id 狀態 get 日誌實體類,用戶記錄用戶登錄登出 LogRec.javapackage q.dms.test; import java.util.Date; /** 實體類 包含用戶登錄的id,

php之公眾開發三公牛牛房卡平臺搭建使用php7要註意的地方

mar shadow 公眾號開發 jpg oss 文檔 微信公眾號開發 dem proc 開啟微信公眾號開發三公牛牛房卡平臺搭建網站(h5.fanshubbs.com聯系Q1687054422),從微信開發文檔中下載demo 如下載php示例代碼 示例代碼中是使用“$GL

利用公眾快速推廣APP應用

一鍵 競爭 展現 就是 公眾 不但 留住 內部 粉絲   在APP推廣工作中,新媒體起到了至關重要的作用。新媒體對於信息傳播的快速、高效、多元化,可以很好地將APP平臺的功能、服務、資訊、活動等內容傳遞給用戶群體,並且在用戶中匯聚成完整的品牌內涵。   新媒體也即用數字化