요약:
위챗은 엄청난 사용자 기반과 강력한 사용자 밀착성을 바탕으로 지난 2년 동안 수많은 개발자들의 주목을 받아왔습니다. 지난 2년 동안 매우 빠르게 발전한 개발 도구인 Nodejs는 특히 모바일 백엔드 구축에 적합합니다. 이 기사에서는 저자가 개발한 예제를 사용하여 Nodejs를 기반으로 자신만의 WeChat 공개 계정을 개발하는 방법을 설명합니다. 이 예에서는 express, wechat, mongodb, Monk 및 기타 모듈이 주로 사용됩니다.
조기 준비:
1. WeChat 공개 계정을 신청하려면 https://mp.weixin.qq.com/으로 이동하세요. 여기서는 너무 자세히 설명하지 않겠습니다.
2. 여기서는 Amazon의 EC2를 추천합니다. 마이크로 인스턴스를 선택하면 1년 동안 무료로 신청할 수 있습니다. 전체 과정은 영어로만 진행됩니다. 첫 해에는 무료이므로 더 많은 시간을 투자할 가치가 있습니다.
NodeJs 개발 환경 설치:
소개 예시:
저자 반은 축구팀을 결성했습니다. 모두가 선장에게 돈을 건넸고, 선장은 각 수수료를 지불하고 각 사람의 수수료와 잔액을 기록하고 모두에게 알렸습니다. 매번 모두가 올 수는 없고 비용도 AA 단위로 참가자들끼리 균등하게 나누어야 하기 때문에 기록하기가 번거롭다. 그래서 위챗 공개 계정을 만들었습니다. 활동 소비량을 입력하고 참가자 수만 선택하면 1인당 비용과 잔액이 자동으로 생성되고 세부 정보가 위챗 그룹으로 전송됩니다. 누구나 볼 수 있도록 말이죠.
이 예에서는 작성자가 활동비와 잔액을 웹페이지를 통해 기록하거나 표시하기 위해 실제로 마이크로사이트를 구축했습니다. WeChat 공개 계정은 사용자의 WeChat과 마이크로 웹사이트 사이에 다리를 구축하는 것과 같습니다. WeChat 사용자가 작성자의 공개 계정을 팔로우하면 WeChat 공개 플랫폼 개발자 모드가 자동으로 WeChat 사용자에게 도움을 요청할 수 있습니다. 도움말에는 해당 작업에 해당하는 웹 링크가 있습니다. 클릭하기만 하면 해당 페이지로 들어갈 수 있습니다.
WeChat 공개 계정 백엔드 서비스 구축:
모든 것이 준비되어 있으며 개발만 필요합니다. :)
시작하기 전에 Express 및 WeChat 모듈을 간략하게 소개하겠습니다.
express - 뛰어난 웹 개발 프레임워크인 express를 사용하면 자신만의 웹 사이트를 매우 빠르게 구축할 수 있습니다. WeChat 서버는 HTTP Post 요청을 통해 개발자 서버와 상호 작용하므로 Express 프레임워크를 사용해야 합니다.
다음은 신규 사용자가 팔로우했을 때의 로그입니다. 103.7.30.84는 위챗 서버의 IP 주소입니다.
먼저 Express를 설치하고 Express를 사용해 프로젝트를 생성해야 합니다.
설치 후 디렉토리 구조는 다음과 같습니다.
URL과 토큰을 구성합니다. 예시는 다음과 같습니다.
WeChat 서버 접속 인증 및 자동 회신:
app.js를 수정합니다. 해당 코드는 다음과 같습니다.
app.use('/users', 사용자);
app.use('/weixin', weixin);
app.use(express.query()); // 또는 app.use(express.query());
app.use('/wechat', wechat('hchismylove', function (req, res, next) {
// 위챗 입력정보는 모두 req.weixin에 있습니다
var 메시지 = req.weixin;
console.log(메시지);
if((message.MsgType == '이벤트') && (message.Event == '구독'))
{
var refillStr = "1. 팀 재충전을 기록하려면 클릭하세요"
var ConsumerStr = "2. 팀 소비를 기록하려면 클릭하세요"
var deleteStr = "3. 기록을 롤백하려면 클릭하세요"
var HistoryStr = "4. 기록을 쿼리하려면 클릭하세요"
varemptStr = " " ";
var replyStr = "주의해 주셔서 감사합니다!" "n"emptStr "n" refillStr "n"emptyStr "n"ConsumStr
"n"emptStr "n" deleteStr "n"emptyStr "n"historyStr;
res.reply(replyStr);
}
}));