Vonage API를 사용하여 Node.js로 SMS 메시지 보내기

18849 단어 apinodesmsvonage

Vonage API를 사용하여 Node.js로 SMS 메시지 보내기



Clone the Source Code on Github

Vonage는 뉴저지에 본사를 둔 미국의 통신 회사입니다.

이 회사는 상장된 비즈니스 클라우드 기반 통신 제공업체입니다.

Vonage는 API 게이트웨이를 통해 SMS, MMS, 음성 및 비디오 스트리밍 서비스를 제공합니다.

Vonage의 SMS API를 사용하면 다음을 사용하여 전 세계 사용자와 문자 메시지를 주고받을 수 있습니다features.
  • 전역적으로 대량의 SMS를 프로그래밍 방식으로 보내고 받습니다.
  • 대기 시간이 짧고 전송률이 높은 SMS를 보냅니다.
  • 지역 번호를 사용하여 SMS를 수신합니다.
  • 친숙한 웹 기술로 응용 프로그램을 확장합니다.
  • 사용한 만큼만 지불하면 됩니다.
  • 개인 정보를 보호하는 자동 편집 기능입니다.

  • 이 프로젝트의 목표는 Vonage SMS API를 사용하는 간단한 Nodejs RESE API를 만드는 것입니다.

    1단계: 프로젝트 초기화



    프로젝트 폴더에서 Nodejs 프로젝트를 초기화하여 시작하고 작업 디렉터리에 Node.js용 Vonage Server SDK를 설치합니다.
    또한 환경 바이러스를 위한 ExpressJs 프레임워크 및 DotEnv를 설치하십시오.

    $ npm init -y
    $ npm install @vonage/server-sdk --save
    $ npm i dotenv express
    
    

    package.json는 다음과 유사합니다.

    {
      "name": "vonage-sms",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "start": "node index"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "dependencies": {
        "@vonage/server-sdk": "^2.11.1",
        "dotenv": "^16.0.1",
        "express": "^4.18.1"
      },
      "type": "module"
    }
    


    가져오기 문을 사용할 수 있도록 package.json 파일에 "type": "module"을 추가합니다.

    2단계: 두 개의 파일 만들기


    lib.jsindex.js는 아래와 같습니다.
  • lib.js : API 자격 증명으로 Vonage 인스턴스를 초기화하는 sendSms 함수용 라이브러리 파일

  • // lib.js
    import Vonage from "@vonage/server-sdk";
    import 'dotenv/config'
    
    const vonage = new Vonage({
        apiKey: process.env.VONAGE_API_KEY,
        apiSecret: process.env.VONAGE_API_SECRET,
    });
    
    const sender = process.env.VONAGE_VIRTUAL_NUMBER;
    
    export const sendSms = (recipient, message) => {
        return new Promise((resolve, reject) => {
        console.log("Initial");
        vonage.message.sendSms(sender, recipient, message, (err, responseData) => {
                if (err) {
                    console.log(err);
                    reject(err.message)
                } else {
                    if (responseData.messages[0]["status"] === "0") {
                        console.dir(responseData);
                        resolve(responseData);
                    } else {
                        console.log(
                            `Message failed with error: ${responseData.messages[0]["error-text"]}`
                        );
                        reject(`${responseData.messages[0]["error-text"]}`);
                    }
                }
            }
        )  
      })
    };
    


  • index.js : 응용 프로그램의 기본(진입) 지점입니다.

  • // index.js
    import express from "express";
    import 'dotenv/config'
    import { sendSms } from "./lib.js";
    
    const PORT = process.env.PORT;
    const { json, urlencoded } = express;
    
    const app = express();
    
    app.use(json());
    app.use(
        urlencoded({
            extended: true,
        })
    );
    
    app.post('/send', (req, res) => {
        const { phone, message } = req.body;
        sendSms(phone, message)
            .then((data) => res.json({ success: true, data }))
            .catch((err) => res.json({ success: false, message: err }));
    });
    
    app.listen(PORT, () => {
        console.log(`Server listening at http://localhost:${PORT}`);
    });
    


    3단계: Vonage API 자격 증명 가져오기 및 설정



    다음으로 Vonage API account 이 필요합니다. 아직 계정이 없다면 약 2$의 무료 크레딧으로 가입하고 구축을 시작할 수 있습니다.

    VonageDashboard에서 API 키와 암호를 찾아 .env의 환경 변수에 할당합니다.

    PORT=3000
    VONAGE_VIRTUAL_NUMBER=GIFTI
    VONAGE_API_KEY=abc123
    VONAGE_API_SECRET=P1Qxyz000000
    


    4단계: 발신자 가상 번호 구성 또는 수신자 테스트 번호 등록



    전화번호를 받으려면 여기를 클릭하세요.


  • Dashboard로 이동
  • Number을 클릭한 다음 Your Numbers를 클릭합니다.



  • 여기에서 가상 전화번호를 관리하고 설정을 구성할 수 있습니다.
    단, 신규 가입 사용자의 경우 유료 계정으로 업그레이드한 이후에만 번호를 추가로 구매할 수 있기 때문에 테스트 번호만 사용할 수 있습니다.

    테스트 번호를 받으려면 여기를 클릭하십시오.





    첫 번째 결제를 통해 계정을 업그레이드할 때까지 이 번호로만 메시지를 보낼 수 있습니다.

    일회용에 하나 이상의 전화 번호를 추가하십시오. Vonage는 SMS 또는 음성 메시지를 통해 인증 코드를 전송합니다.

    5단계: 마지막으로 nodejs 익스프레스 애플리케이션 실행



    Postman, Insomnia 또는 기타 http 클라이언트를 열고 서버에 게시

    http://localhost:3000/send

    POST 요청:




    {
        "phone": "+234 test-phone",
        "message": "Hi Developer, testing for Vonage"
    }
    


    POST 응답:




    {
        "success": true,
        "data": {
            "messages": [
                {
                    "to": "234-test-phone",
                    "message-id": "866cf22f-c55f-482b-81ba-faa02c69578e",
                    "status": "0",
                    "remaining-balance": "1.71020000",
                    "message-price": "0.09660000",
                    "network": "62130"
                }
            ],
            "message-count": "1"
        }
    }
    


    오류 메시지가 표시되는 경우
    Non-Whitelisted Destination. Your Vonage account is still in demo mode. While in demo mode you must add target numbers to your whitelisted destination list.
    그런 다음 4단계에서 설명한 대로 수신자 전화번호가 테스트 전화번호로 등록되어 있는지 확인해야 합니다.

    좋은 웹페이지 즐겨찾기