前言

之前发过一篇文章,用 Python 制作的给父母天气预报提醒的小工具天气变冷了,给父母制作一个天气提醒小助手,这篇文章我同步到博客上之后,有读者在评论区留言,对于部分微信没有网页版接口,导致无法实现这个功能,这位读者建议,建议用发短信的方式,这样,就不会受限于微信的限制。

!

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第1张
 

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第2张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第3张​

这是一个好方法,今天的教程就是教大家怎么发送免费短信给女朋友。

发送短信接口,我知道的常见的有两个平台,一个是 twilio,可以免费发短信 500 条,可发任意信息,一个是腾讯云,可以免费发短信 100 条,需要申请短信发送内容模板。

鉴于 twilio 免费次数多一些,所以,这次我们就 twilio来发送当天的天气信息给爸妈了。

twilio注册

要发送短信,我们需要现在 twilio 官网注册一个账号。

https://www.twilio.com/
谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第4张

点击 Sign Up 注册一个账号。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第5张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第6张​

填写邮箱和密码等资料,提交后会有一个判断是否为机器人的验证,点击左右箭头使图案显示为正图就可以了。

再到刚才填写的邮箱中去验证下,需要填入手机号验证。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第7张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第8张​

刚开始用了移动号发了两次都没有收到验证码,不知道什么原因,之后换了电信后就收到了验证码。

验证成功后会提示选择是否通过代码调用。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第9张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第10张​

选择 yes 后再选择对应的语言,我们当然是选择 Python 了。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第11张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第12张​

获取试用号

选择使用用途后,可以就可以获取一个试用的号码了,点击 Get a Trial Number 按钮。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第13张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第14张​

我们可以看到系统给我提供的这个号码。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第15张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第16张​

点击确定后就会出现成功的页面,显示 Twilio 提供的号码,这个号码就是用来发送短信的。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第17张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第18张​

获取号码成功后自动跳回到主页,下方有 Python 调用短信接口的示例。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第19张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第20张​

进入接口调用说明后,我们看到右边直接由 Python 调用接口发短信的示例。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第21张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第22张​

我们直接拿来用即可,把代码中 account_sid 和 auth_token 替换成自己的,这个两个值在刚才显示号码那个页面。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第23张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第24张​

再把 message 中的 body 换成你自己的文本,把发送信息的号码换成官方提供的号码。

接收号验证

接收号码在使用前,需要在 Twilio 上验证下,点击右侧的 verified numbers 进入,添加号码。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第25张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第26张​

因为这是免费版,所以只支持一个号码,如果之前有验证号码的话,我们需要点击右侧的 X 把这个号码号码删除才能添加新的号码。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第27张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第28张​

点击验证号码的按钮后,在弹出的页面选择左下方的 text you instead,也就是用短信验证码来验证新添加的号码,你要发给女朋友,当然,这个接收的号码都填女朋友的了。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第29张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第30张​

填入号码后,点击验证,等待验证码。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第31张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第32张​

我分别试了移动号、联通号、电信号,发现电信号和联通卡能正常收到验证码通过验证,移动号发了几次都收不到验证码,卡里是有余额的,可能是移动卡不支持这个接口,大家可以试试。

代码调试

运行代码前,不要忘了把 twilio 库用 pip 命令安装下。

pip install twilio
谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第33张

然后把代码中的几个值替换成自己的。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第34张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第35张​

把刚才验证成功的号添加到代码中,运行代码,成功后就会收到发送的短信。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第36张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第37张​

然后我们把之前的天气信息用短信发出去,当然你可以发送其他信息。这里我为了偷懒,用之前的天气信息来举例,发金山词霸语句的代码我也放一起了。

之前的代码中把微信相关的去掉,天气接口部分保留。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第38张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第39张​

把其中的 key 换成自己的,具体操作详见这篇文章天气变冷了,给父母制作一个天气提醒小助手。

把刚才发送短信的内容替换成天气接口返回的信息 msg,定时操作的代码和之前一样。

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第40张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第41张​

运行代码后的效果如下:

谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第42张谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信 Python 第43张​

同样,我还是把程序放在服务器上,第二天同一时间会继续发送当天的天气信息,我设置的是相隔 24 小时,当然,你可以改变相隔时间。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄