You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js服务器中调用第三方API?求IndiaSMS调用方案

Calling IndiaSMS API from a Node.js Server: Feasible Approaches

Hey there! Let’s walk through the most reliable ways to integrate IndiaSMS’s SMS service into your Node.js server. I’ve handled quite a few SMS gateway integrations, so these methods are tried and tested:

1. Use Node.js's Native http/https Module

No need for external packages—this is built right into Node.js. Great for simple use cases where you don’t want extra dependencies cluttering up your project.

Here’s a quick example of a POST request (most SMS APIs use POST to send data):

const https = require('https');

const sendSMS = () => {
  const apiKey = process.env.INDIA_SMS_API_KEY; // Store keys in env vars, never hardcode!
  const phoneNumber = '91XXXXXXXXX'; // Don't skip the country code
  const message = 'Hello from your Node.js server!';

  const postData = JSON.stringify({
    api_key: apiKey,
    number: phoneNumber,
    message: message,
    sender_id: 'YOUR_APP_ID' // Required by most SMS gateways
  });

  const options = {
    hostname: 'api.indiasms.com', // Replace with IndiaSMS's actual API domain
    path: '/send-sms', // Use the correct endpoint from their docs
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Content-Length': Buffer.byteLength(postData)
    }
  };

  const req = https.request(options, (res) => {
    let data = '';
    res.on('data', (chunk) => {
      data += chunk;
    });
    res.on('end', () => {
      console.log('API Response:', JSON.parse(data));
      // Handle success/error based on the response status code
    });
  });

  req.on('error', (error) => {
    console.error('Error sending SMS:', error);
  });

  req.write(postData);
  req.end();
};

sendSMS();

2. Use the axios HTTP Client

axios is a popular, promise-based library that simplifies HTTP requests way more than the native module. It handles response parsing, error handling, and header management out of the box.

First, install it:

npm install axios

Then use it in your code with async/await for cleaner logic:

const axios = require('axios');

const sendSMS = async () => {
  try {
    const apiKey = process.env.INDIA_SMS_API_KEY;
    const response = await axios.post('https://api.indiasms.com/send-sms', {
      api_key: apiKey,
      number: '91XXXXXXXXX',
      message: 'Hello via Axios!',
      sender_id: 'YOUR_APP_ID'
    });

    console.log('SMS sent successfully:', response.data);
  } catch (error) {
    console.error('Failed to send SMS:', error.response?.data || error.message);
  }
};

sendSMS();

3. Use request-promise (Legacy Option)

Note: The original request library is deprecated, but request-promise (a promise-based wrapper) is still used in some older projects. If you’re working on an existing codebase that relies on it, here’s how you might use it:

Install first:

npm install request-promise

Code example:

const request = require('request-promise');

const sendSMS = async () => {
  try {
    const options = {
      method: 'POST',
      uri: 'https://api.indiasms.com/send-sms',
      body: {
        api_key: process.env.INDIA_SMS_API_KEY,
        number: '91XXXXXXXXX',
        message: 'Hello via request-promise!'
      },
      json: true // Automatically stringifies body and parses response
    };

    const response = await request(options);
    console.log('Response:', response);
  } catch (error) {
    console.error('Error:', error);
  }
};

sendSMS();

4. Check for an Official IndiaSMS Node.js SDK

If IndiaSMS offers an official Node.js SDK, this is the best option—they’ll handle all the low-level HTTP stuff, authentication, and edge cases for you. Just search their documentation for "Node.js SDK" or "npm package". If it exists, install it via npm and follow their provided examples (it’ll be even simpler than the above methods!).

Key Tips for Smooth Integration

  • Secure Your API Keys: Never hardcode API keys or credentials in your code. Use environment variables (like process.env) or a secrets manager.
  • Handle Errors Gracefully: Always catch network errors, API error codes (like 401 for unauthorized, 400 for bad requests), and invalid responses.
  • Follow IndiaSMS’s Docs: Double-check required parameters (like sender ID rules, message length limits, phone number formatting) as these vary by provider.
  • Use Async/Await: Makes asynchronous code easier to read and maintain compared to callbacks.

内容的提问来源于stack exchange,提问作者Arpit Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:55:54