这份文档还在翻译中,预期年底前完成。欢迎您提供宝贵的意见及建议。

短信 API

Nexmo 的短信 API 使您能够使用简单的 REST API 向世界各地的用户发送和接收短信。

  • 以编程方式在全球范围内发送和接收大量短信。
  • 发送低延迟和高传输率的短信息。
  • 使用本地号码接收短信。
  • 使用熟悉的 Web 技术扩展您的应用程序。
  • 只为使用的功能付费,没有额外收费。

入门

发送短信

本示例说明如何将短信发送到您选择的号码。

首先,如果您还没有 Nexmo 帐户,请先注册 Nexmo 帐户,然后在 Dashboard 入门页面上记下您的 API 密钥和密码。

在示例代码中替换以下占位符值:

密钥 说明
NEXMO_API_KEY 您的 Nexmo API 密钥。
NEXMO_API_SECRET 您的 Nexmo API 密码。

Write the code

Add the following to send-sms.sh:

Copy to Clipboard
curl -X "POST" "https://rest.nexmo.com/sms/json" \
  -d "from=$NEXMO_BRAND_NAME" \
  -d "text=A text message sent using the Nexmo SMS API" \
  -d "to=$TO_NUMBER" \
  -d "api_key=$NEXMO_API_KEY" \
  -d "api_secret=$NEXMO_API_SECRET"

View full source

Run your code

Save this file to your machine and run it:

sh send-sms.sh

Prerequisites

Install dependencies

npm install nexmo
Initialize your dependencies

Create a file named send.js and add the following code:

Copy to Clipboard
const Nexmo = require('nexmo')

const nexmo = new Nexmo({
  apiKey: NEXMO_API_KEY,
  apiSecret: NEXMO_API_SECRET
})

View full source

Write the code

Add the following to send.js:

Copy to Clipboard
const from = NEXMO_BRAND_NAME
const to = TO_NUMBER
const text = 'A text message sent using the Nexmo SMS API'

nexmo.message.sendSms(from, to, text, (err, responseData) => {
    if (err) {
        console.log(err);
    } else {
        if(responseData.messages[0]['status'] === "0") {
            console.log("Message sent successfully.");
        } else {
            console.log(`Message failed with error: ${responseData.messages[0]['error-text']}`);
        }
    }
})

View full source

Run your code

Save this file to your machine and run it:

node send.js

Prerequisites

Install dependencies

Add the following to `build.gradle`:

compile 'com.nexmo:client:5.2.1'
Initialize your dependencies

Create a class named SendMessage and add the following code to the main method:

Copy to Clipboard
NexmoClient client = NexmoClient.builder().apiKey(NEXMO_API_KEY).apiSecret(NEXMO_API_SECRET).build();

View full source

Write the code

Add the following to the main method of the SendMessage class:

Copy to Clipboard
TextMessage message = new TextMessage(NEXMO_BRAND_NAME,
        TO_NUMBER,
        "A text message sent using the Nexmo SMS API"
);

SmsSubmissionResponse response = client.getSmsClient().submitMessage(message);

if (response.getMessages().get(0).getStatus() == MessageStatus.OK) {
    System.out.println("Message sent successfully.");
} else {
    System.out.println("Message failed with error: " + response.getMessages().get(0).getErrorText());
}

View full source

Run your code

We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:

  apply plugin: 'application'
  mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Run the following gradle command to execute your application, replacing com.nexmo.quickstart.sms with the package containing SendMessage:

gradle run -Pmain=com.nexmo.quickstart.sms.SendMessage

Prerequisites

Install dependencies

Install-Package Nexmo.Csharp.Client
Import dependencies

Create a file named SendSms.cs and add the following code:

Copy to Clipboard
using Nexmo.Api;
using Nexmo.Api.Request;

View full source

Initialize your dependencies

Add the following to SendSms.cs:

Copy to Clipboard
var credentials = Credentials.FromApiKeyAndSecret(
    NEXMO_API_KEY,
    NEXMO_API_SECRET
    );

var nexmoClient = new NexmoClient(credentials);

View full source

Write the code

Add the following to SendSms.cs:

Copy to Clipboard
var response = nexmoClient.SmsClient.SendAnSms(new Nexmo.Api.Messaging.SendSmsRequest()
{
    To = TO_NUMBER,
    From = NEXMO_BRAND_NAME,
    Text = "A text message sent using the Nexmo SMS API"
});

View full source

Prerequisites

Install dependencies

composer require nexmo/client
Initialize your dependencies

Create a file named send-sms.php and add the following code:

Copy to Clipboard
$basic  = new \Nexmo\Client\Credentials\Basic(NEXMO_API_KEY, NEXMO_API_SECRET);
$client = new \Nexmo\Client($basic);

View full source

Write the code

Add the following to send-sms.php:

Copy to Clipboard
try {
    $message = $client->message()->send([
        'to' => TO_NUMBER,
        'from' => 'Acme Inc',
        'text' => 'A text message sent using the Nexmo SMS API'
    ]);
    $response = $message->getResponseData();

    if($response['messages'][0]['status'] == 0) {
        echo "The message was sent successfully\n";
    } else {
        echo "The message failed with status: " . $response['messages'][0]['status'] . "\n";
    }
} catch (Exception $e) {
    echo "The message was not sent. Error: " . $e->getMessage() . "\n";
}

View full source

Run your code

Save this file to your machine and run it:

php send-sms.php

Prerequisites

Install dependencies

pip install nexmo
Initialize your dependencies

Create a file named send-an-sms.py and add the following code:

Copy to Clipboard
import nexmo

client = nexmo.Client(key=NEXMO_API_KEY, secret=NEXMO_API_SECRET)

View full source

Write the code

Add the following to send-an-sms.py:

Copy to Clipboard
responseData = client.send_message(
    {
        "from": NEXMO_BRAND_NAME,
        "to": TO_NUMBER,
        "text": "A text message sent using the Nexmo SMS API",
    }
)

if responseData["messages"][0]["status"] == "0":
    print("Message sent successfully.")
else:
    print(f"Message failed with error: {responseData['messages'][0]['error-text']}")

View full source

Run your code

Save this file to your machine and run it:

python send-an-sms.py

Prerequisites

Install dependencies

gem install nexmo
Initialize your dependencies

Create a file named send.rb and add the following code:

Copy to Clipboard
client = Nexmo::Client.new(
  api_key: NEXMO_API_KEY,
  api_secret: NEXMO_API_SECRET
)

View full source

Write the code

Add the following to send.rb:

Copy to Clipboard
client.sms.send(
  from: 'Acme Inc',
  to: TO_NUMBER,
  text: 'A text message sent using the Nexmo SMS API'
)

View full source

Run your code

Save this file to your machine and run it:

ruby send.rb

目录

本文档的其余部分包含以下信息:

概念

在使用 Nexmo 短信 API 之前,请先熟悉以下内容:

  • 号码格式 - 短信 API 要求使用 E.164 format 的电话号码。

  • 身份验证 - 短信 API 使用您的帐户 API 密钥和密码进行身份验证。

  • Webhook - 短信 API 向您的应用程序 Web 服务器发出 HTTP 请求,以便您可以对它们进行操作。例如:入站短信和传输收据。

指南

代码片段

用例

参考