Media SMS OPE PreviewDocsReferences

Twilio / AWSとの比較(SMS送信)

概要Copied!

当ページでは他社のSMSサービスでAPIリクエストを実装した例と、Media SMS Consoleで実装した例を紹介しています。既存のシステムからMedia SMSへ移行する際にご活用ください。

Node.jsCopied!

TwilioCopied!

const twilio = require("twilio");

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function createMessage() {
  const message = await client.messages.create({
    body: "This is the ship that made the Kessel Run in fourteen parsecs?",
    from: "+15017122661",
    to: "+15558675310",
  });

  console.log(message.body);
}

createMessage();

AWS SNSCopied!

import { SNSClient, PublishCommand } from "@aws-sdk/client-sns";

const mobilenumber = '+819012345678';     // E.164形式の電話番号
const smstext = 'テストメッセージ_aws_node';

const snsClient = new SNSClient({});

const main = async () => {

  const result = await snsClient.send(
    new PublishCommand({
      Message:     smstext,
      PhoneNumber: mobilenumber,
    }),
  );
  console.log(result);
  return result;

}

main();

SMS OPECopied!

const username = 'your_username';
const password = 'your_password';
const mobilenumber = '09012345678';
const smstext = 'テストメッセージ_node';

const main = async () => {

    const formData = new FormData();
    formData.append('username', username);
    formData.append('password', password);
    formData.append('mobilenumber', mobilenumber);
    formData.append('smstext', smstext);

    const response = await fetch('https://www.sms-ope.com/Endpoint1/', {
      method: 'POST',
      body: formData
    });

    const json = await response.json();
    console.log(json);
}

main();

PHPCopied!

TwilioCopied!


<?php

require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$message = $twilio->messages->create(
    "+15558675310", // To
    [
        "body" =>
            "This is the ship that made the Kessel Run in fourteen parsecs?",
        "from" => "+15017122661",
    ]
);

print $message->body;

AWS SNSCopied!

<?php
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;

$mobilenumber = '+819012345678';    // E.164形式の電話番号
$smstext = 'テストメッセージ_aws_php';

$SnSclient = new SnsClient([
    'profile' => 'default',         // ~/.aws/credentialsから認証情報を読み取る
    'region' => 'ap-northeast-1',
    'version' => 'latest'
]);

try {
    $result = $SnSclient->publish([
        'Message' => $smstext,
        'PhoneNumber' => $mobilenumber,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    error_log($e->getMessage());
}
?>

SMS OPECopied!

<?php
// 変数の準備
$username = 'unotest-ope-user';
$password = 'nNNqsbfVssXgo3Y';
$mobilenumber = '07092736381';
$smstext = 'テストメッセージ_php';

// cURL初期化
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.sms-ope.com/Endpoint1/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// マルチパートデータの設定
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'username' => $username,
    'password' => $password,
    'mobilenumber' => $mobilenumber,
    'smstext' => $smstext,
]);

// 実行
$response = curl_exec($ch);

// エラーチェック
if (curl_errno($ch)) {
    echo 'エラー: ' . curl_error($ch);
} else {
    echo 'レスポンス: ' . $response;
}

curl_close($ch);
?>

RubyCopied!

TwilioCopied!

require 'rubygems'
require 'twilio-ruby'

account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

message = @client
          .api
          .v2010
          .messages
          .create(
            body: 'This is the ship that made the Kessel Run in fourteen parsecs?',
            from: '+15017122661',
            to: '+15558675310'
          )

puts message.body

AWS SNSCopied!

require 'aws-sdk-sns' # gem install aws-sdk-sns

mobilenumber = '+819012345678'       # E.164形式の電話番号'
smstext = 'テストメッセージ_aws_ruby'

class SnsMessageSender

    def initialize(sns_client)
      @sns_client = sns_client
    end

    def send_message(message, phone_number)
      result = @sns_client.publish(message: message, phone_number: phone_number)
      return result
    end

end

sns_client = Aws::SNS::Client.new(region: 'ap-northeast-1')
message_sender = SnsMessageSender.new(sns_client)

result = message_sender.send_message(smstext, mobilenumber)
puts result

SMS OPECopied!

require 'uri'
require 'net/http'

username = 'your_username'
password = 'your_password'
mobilenumber = '+819012345678'
smstext_1 = 'テストメッセージ_ruby'

url = URI("https://www.sms-ope.com/Endpoint1/")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'multipart/form-data'
form_data = [
    ['username', username],
    ['password', password],
    ['mobilenumber', mobilenumber],
    ['smstext', smstext],
]
request.set_form(form_data, 'multipart/form-data')

response = http.request(request)
puts response.read_body

PythonCopied!

TwilioCopied!

import os
from twilio.rest import Client

account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

message = client.messages.create(
    body="This is the ship that made the Kessel Run in fourteen parsecs?",
    from_="+15017122661",
    to="+15558675310",
)

print(message.body)

AWS SNSCopied!

import boto3 # pip install boto3

mobilenumber = '+819012345678'       # E.164形式の電話番号
smstext = 'テストメッセージ_aws_python'

class SnsWrapper:

    def __init__(self, sns_resource):
        self.sns_resource = sns_resource

    def publish_sms(self, phone_number, message):
        try:
            result = self.sns_resource.meta.client.publish(
                PhoneNumber=phone_number, Message=message
            )
        except ClientError:
            print("Couldn't publish message to %s.", phone_number)
            raise
        else:
            return result

sns_wrapper = SnsWrapper(boto3.resource("sns"))
result = sns_wrapper.publish_sms(mobilenumber, smstext)
print(result)

SMS OPECopied!

import requests

username = 'your_username'
password = 'your_password'
mobilenumber = '09012345678'
smstext_1 = 'テストメッセージ_python'

response = requests.post(
    'https://www.sms-ope.com/Endpoint1/',
    files={
        'username': (None, username),
        'password': (None, password),
        'mobilenumber': (None, mobilenumber),
        'smstext': (None, smstext),
    }
)

print('ステータスコード:', response.status_code)
print('レスポンス内容:', response.text)