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)