Xây dựng app theo dõi covid bằng NodeJS – Phần 4


1057

Theo dõi seri Xây dựng app theo dõi covid bằng NodeJS tại đây :

Nhận và trả lời SMS Twilio NodeJS

Twilio có thể gửi cho ứng dụng web một request HTTP khi sự kiện nhất định xảy ra, chẳng hạn như tin nhắn văn bản đến số điện thoại Twilio. . Vì vậy, chúng ta sẽ tạo route để twilio gọi tới bất cứ khi nào người dùng gửi tin nhắn đến số điện thoại Twilio để dừng hoặc khởi động lại dịch vụ.

Cấu hình số điện thoại Twilio để nó có thể gửi request HTTP đến route trong ứng dụng, bất cứ khi nào chúng ta nhận được tin nhắn đến. Cần URL trang web cho điều đó, và hiện tại chúng ta không có.

Đầu tiên tạo route trong ứng dụng. Và deploy ứng dụng của mình lên heroku, chúng ta có URL để thêm vào trong bảng điều khiển Twilio.

Tạo một tệp mới trong thư mục routes, tên là sms.js và thêm đoạn code sau. Twilio cung cấp đoạn code cho hầu hết mọi ngôn ngữ lập trình để thực hiện việc này

Viết code vào sms.js

const express = require("express");
const router = express.Router();
const MessagingResponse = require("twilio").twiml.MessagingResponse;
const User = require("../models/User");
router.post("/", async (req, res) => {
  const twiml = new MessagingResponse();
  phn_number = req.body.From.slice(3);
  if (req.body.Body === "STOP") {
    await User.update(
      { number: phn_number },
      {
        $set: {
          active: false,
        },
      }
    );
    twiml.message(
      "You will not receive updates any more. To restart the service reply with 'START'\n Thank You."
    );
  } else if (req.body.Body === "START") {
    await User.update(
      { number: phn_number },
      {
        $set: {
          active: true,
        },
      }
    );
    twiml.message("Thank you for your interest. You will now receive updates.");
  } else {
    twiml.message("Sorry, you've send an invalid response.");
  }
  res.writeHead(200, { "Content-Type": "text/xml" });
  res.end(twiml.toString());
});
module.exports = router;

Khi người dùng gửi một tin nhắn đến số điện thoại Twilio với ‘STOP’, hoặc ‘START’ trong tin nhắn, Twilio sẽ gọi route /sms trong ứng dụng và ứng dụng sẽ xử lý sms theo nội dung tin nhắn và sẽ trả lời cho người dùng.

Cùng deploy ứng dụng lên Heroku và cài đặt trực tiếp cho người dùng sử dụng. Tôi sẽ deploy ứng dụng lên Heroku bằng kho Github, tuy nhiên có thể sử dụng heroku-cli deploy. Bạn có thể tìm hiểu thêm về Heroku CLI tại đây.

Tạo respo Github Covid và Deploy lên Heroku

Trước khi tạo kho lưu trữ project covid với Github, chúng ta sẽ thêm tệp .gitignore để chỉ định phần nào trong ứng dụng muốn bỏ qua (ví dụ: mô-đun node, tệp .env) trong khi upload tệp lên kho lưu trữ Github. . Chúng ta có thể tự viết tệp .gitignore nhưng tốt nhất, hãy lấy file mẫu.

Github tự cung cấp một kho chứa bộ sưu tập các tệp mà có thể sử dụng trong ứng dụng Bạn có thể tìm thấy nó ở đây.

Bây giờ, hãy tạo một Kho Github mới và tải thư mục dự án lên

Tạo repository

Xây dựng app theo dõi covid bằng NodeJS – Phần 4

Tạo account Heroku

Bây giờ, hãy đi đến Heroku và đăng nhập vào tài khoản của bạn hoặc tạo một tài khoản mới (nếu chưa có tài khoản).

Xây dựng app theo dõi covid bằng NodeJS – Phần 4

Kết nối Github Project Covid

Bây giờ, trên dashboard, hãy tạo một ứng dụng mới. Sau đó kết nối tài khoản Github của bạn.

Image for post

Ứng dụng của bạn đã được tạo. Sau đó vào Heroku : Chọn ứng dụng NodeJS, nhưng chúng ta cần cài thêm package. Chuyển đến cài đặt và chọn tab Add Buildpack, và chọn NodeJS từ danh sách.

Image for post

Hãy nhớ rằng, chúng ta đã sử dụng tệp .env để ẩn các bí mật của mình nhưng chúng ta đã không tải nó lên kho Github. Vì vậy, hãy thêm những bí mật đó vào Heroku Config Variables. Trong tab cài đặt, chọn Reveal Config Var, sau đó thêm tất cả các khóa và giá trị

Image for post

Mở url bằng cách click Open App từ dashboard và đây là kết quả.

Image for post

Vào phần cofing Twilio để thêm URL của bạn.

Image for post

Và cuối cùng, chúng ta đã hoàn thành project.

Kết luận

Qua 4 phần của sê-ri, mong bạn sẽ hiểu được và xây dựng một app theo cách riêng của bản thân. Học được cách deploy, cấu trúc thư mục ….

Tham khảo thêm NodeJS tại đây: Async/Await là gì ? Tính năng tuyệt vời của Javascript


Like it? Share with your friends!

1057