用Python免费发短信,实现程序实时报警
进入正文
今天跟大家分享的主题是利用python库twilio来免费发送短信。
先放一张成品图:
代码放在了本文最后的地址中
正文
眼尖的小伙伴已经发现了上面的短信的前缀显示这个短信来自于一个叫Twilio的免费的账户,今天我们用到的库就是twilio,既然是免费的账户,那么肯定是有一些限制的,这个会在后面提到。
另外要注意的是这个网站从国内访问的时候,可能会因为一些你懂得原因没法访问,那就只好学习一下怎么科学上网了。
1.Twilio
Twilio是一个做成开放插件的电话跟踪服务(call-tracking service)。美国当地时间2016年6月23日,云通讯公司Twilio在纽约证券交易所上市(来自于百度百科)
2. 安装
官方文档地址:https://www.twilio.com/docs/libraries/python
最简单的方式就是通过pip,执行如下命令:
pip install twilio
3.注册账号
安装好库以后,就需要到官方的网页上进行注册了。
然后进入注册页面
接着通过了人机认证以后,就会对你的手机号码进行认证。
4. 进入console
注册好了以后,就可以进入我们自己的面板了
图中箭头所指的两个参数是我们代码中需要的, 可以把两个都复制一下;
既然是发短信,那么肯定是有一个接收者和一个发送者,发送者的号码可不是我们自己刚刚填的号码,而且twilio给我们分配的一个号码,因为我也是前段时间搞好了,所以不太记得这个号码是不是一开始进去就有的了,如果没有的话,那么就点击Get Stared。
现在我们点击Manage Numbers
这个时候就可以看到我们的号码了,这是重点,记下来
5. 写代码
根据文档的内容,我们编写了下面的代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : ShiMeng
# @File : send_sms.py
# @Software: PyCharm
from twilio.rest import Client
# Your Account SID from twilio.com/console
account_sid = "your account sid"
# Your Auth Token from twilio.com/console
auth_token = "your token"
client = Client(account_sid, auth_token)
message = client.messages.create(
# 这里中国的号码前面需要加86
to="+接收者的号码",
from_="+twilio给你的号码 ",
body="Hello from Python!")
print(message.sid)
然后执行程序,你应该会碰到下面的错误
可以从报错信息中明显的看到,提示我们说这个号码没有验证,我们可以到验证的网址上验证一下,也可以购买一个高级别的账号来给未验证的号码发送信息。
而这个就是我一开始提到的免费账号的限制,在这个限制下面如果你想发送信息给一个接收者,这个接收者的号码必须通过验证,语音验证或者短信验证都可以。如果你是想大批量的发那种垃圾信息,那么你不用往下面看了。下面我们就来对号码进行验证。
6. 验证号码
验证网址:https://www.twilio.com/console/phone-numbers/verified
7.重新执行代码
这个时候重新执行我们的代码,没有报错的话,接收者就应该收到你的消息了,就像我一开始放的成品图一样。
但是,在我们发送的信息前面,有一段前缀,我查了一下官方的文档,说这个免费的账户,这个前缀是去不掉的。。。。。。
8.查看用量
在面板中,点击Usage即可看到我们的用量, 如下图所示
可以看到我们的用量以及花费,这个花费是不需要我们真正的付钱的,官方的解释是:
9.打电话
打电话的代码也很简单
# Download the Python helper library from twilio.com/docs/python/install
from twilio.rest import Client
# Your Account Sid and Auth Token from twilio.com/user/account
account_sid = "AC8a9ba33072b6a05f2b81126e3e6609b7"
auth_token = "f0150d603c1886d93b9d45ff15d84f24"
client = Client(account_sid, auth_token)
call = client.calls.create(
to="+接收者号码",
from_="+你的twilio号码",
url="http://demo.twilio.com/docs/voice.xml",
method="GET",
status_callback="https://www.myapp.com/events",
status_callback_method="POST",
status_callback_event=["initiated", "ringing", "answered", "completed"]
)
print(call.sid)
执行程序后,电话也可以接通,但是里面的人会提示你升级账号。。。。。
总结
好了,到这里我们就可以免费的发送短信了。
通过这个库,我们可以:
(1)对线上或者线下后台跑的程序进行监控,并及时发送短信报警
(2)结合树莓派玩一下,可以实现对超多场景的监测
代码被放在了这里:https://github.com/xiaosimao/wx_code/tree/master/send_sms
用Python免费发短信,实现程序实时报警的更多相关文章
- 谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信
前言 之前发过一篇文章,用 Python 制作的给父母天气预报提醒的小工具天气变冷了,给父母制作一个天气提醒小助手,这篇文章我同步到博客上之后,有读者在评论区留言,对于部分微信没有网页版接口,导致无法 ...
- Python twilio发短信实践
twilio注册地址 注册的时候可能会报错 最好是*** -->注册-->注册完毕后代码运行是不需要***的 https://www.twilio.com/console 需要pi ...
- python免费发送短信
pip install twilio from twilio.rest import Client # Your Account SID from twilio.com/console account ...
- iOS - 打电话, 发短信
电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...
- ASP.Net免费发送短信-阿里大鱼短信接口
有点短信余额 不用白不用 3月1号就过期了 情人节做了个免费发短信的 http://love.issuc.com/ 固定短信模板 [活动验证]您正在参加XXX的OOO活动,请确认系本人申请.需要的可以 ...
- iOS学习笔记(十四)——打电话、发短信
电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...
- iOS基本的发短信和打电话调用
电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...
- ios打电话发短信接口
电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...
- 利用python库twilio来免费发送短信
大家好,我是四毛,最近开通了个人公众号“用Python来编程”,欢迎大家“关注”,这样您就可以收到优质的文章了. 今天跟大家分享的主题是利用python库twilio来免费发送短信. 先放一张成品图 ...
随机推荐
- Mysql找回丢失密码
(先进入root权限):# /etc/init.d/mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking ...
- SQL-5查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工
输出描述: 题目描述 查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工CREATE TABLE `dept_emp` (`emp_ ...
- Linux文件系统命令 cd
命令名:cd 功能:切换到某一个目录,后面可以跟相对路径和绝对路径. eg:cd /etc/ 表示的是进入到/etc/目录下 另外几个比较特俗的用法: cd - 切换到当前目录 cd ./ 还是当前路 ...
- 4.Python爬虫入门四之Urllib库的高级用法
1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...
- 跳过用例skip
1.装饰器,放在函数前面,跳过用例 @pytest.mark.skip(reason="no way of currently testing this") import pyte ...
- day 68 增删改查 语法
1 普通正则 2 分组正则 url(r'/blog/(\d+)/(\d+)',views.blog) blog(request,arq1,arq2) 按照位置传参 3 分组命名 url(r'/ ...
- python3自学第二天,模块,三元运算
1.模块的认识. sys模块,os模块等 如何引入模块 import os cmd_res1=os.system("dir") # 执行命令dir,不保存结果 print(cmd_ ...
- ChinaCock界面控件介绍-CCGridPictureEditor
CCGridPictureEditor如其名,网格图片编辑控件,实现利用一个网格来显示多张图片的缩略图,这是一个非常实用的控件,实现类似微信朋友圈中发布多张图片的功能. 在没有这个控件之前,我都是用D ...
- maven install中依赖关系打包failed
maven 中maven dependencies中依赖出现了项目,无法打包 ,出现的错误如图.说明:依赖的项目为project-dao 打包的项目为project-service 都在proje ...
- sequence to sequence模型
sequence to sequence模型是一类End-to-End的算法框架,也就是从序列到序列的转换模型框架,应用在机器翻译,自动应答等场景. Seq2Seq一般是通过Encoder-Decod ...