使用Perl通过Twilio发送短信



我在Perl中有一个广泛的应用程序,它偶尔向我发送文本消息,并且只向我发送。绝对不是垃圾邮件发送者。我在Plivo上运行了这款应用多年,但最近他们通过10DLC活动切断了我的联系。我没能说服他们,这是极低的音量,并没有给广泛的受众——它实际上是从气象站发送特定事件的通知,如温度低于冰点,大风等。

所以我试着切换到Twilio,看看它是否更适合我。

我试过使用他们的示例windows命令行CURL示例,这确实有效,我能够成功地发送一个消息。

由于我的程序是用Perl编写的,所以没有预先构建的API,所以我必须自己手工制作请求包。我的旧Plivo代码形成了一个整洁的json包,尽管有不同的名称。

我已将其更改为Twilio适用的"To", "From"one_answers"Body"部分。我返回一个"400错误请求","代码21604",需要"To"的电话号码。

我提供了一个"To",所以很明显,它只是不理解我的json包。谁能告诉我Twilio的请求包应该是什么样的?

在https://metacpan.org上搜索30秒就得到了这个有用的结果:

安装合适的模块:

cpan SMS::Send SMS::Send::Twilio

:

use SMS::Send;
# Create an object. There are three required values:
my $sender = SMS::Send->new('Twilio',
_accountsid => 'ACb657bdcb16f06893fd127e099c070eca',
_authtoken  => 'b857f7afe254fa86c689648447e04cff',
_from       => '+15005550006',
);

# Send a message to me
my $sent = $sender->send_sms(
text => 'Messages can be up to 1600 characters',
to   => '+31645742418',
);

# Did it send?
if ( $sent ) {
print "Sent test messagen";
} else {
print "Test message failedn";
}

如果你想在没有模块的情况下制作这个请求,你可以使用HTTP::Proxy来拦截请求。POSTWWW::MechanizeLWP也应是可行的。

与shellcURL:

curl 
-d "Body=test" 
-d "From=+1123456789" 
-d "To=+1123456788" 
-u "$twilio_account_sid:$twilio_auth_token" 
"https://api.twilio.com/2010-04-01/Accounts/$twilio_account_sid/Messages"

最新更新