专栏首页猪圈子用Python免费发短信,实现程序实时报警

用Python免费发短信,实现程序实时报警

01

进入正文

今天跟大家分享的主题是利用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.注册账号

安装好库以后,就需要到官方的网页上进行注册了。

进入官网:https://www.twilio.com

然后进入注册页面

接着通过了人机认证以后,就会对你的手机号码进行认证,这个就不发图片了。

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来编程

文部分来源网络,如有侵权请第一时间联系删除。

本文分享自微信公众号 - 猪圈子(Tester-sc),作者:四毛哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 操作系统面试题集合

    进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;

    测试小兵
  • MySQL 入门全套

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再...

    测试小兵
  • web常见界面测试方法总结

    (1)字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴...

    测试小兵
  • 五分钟极速搭建kubernetes集群

    kubernetes的集群搭建有多种方式:二进制、kubeadm、ansible自动化、minikube。minikube方式比较简单,但是只是单...

    星星在线
  • 【LeetCode】无重复字符串最长子串

    这道题的目标是找出最长子串,并且该子串必须不包含重复字符,而且这个子串必须是原字符串中连续的一部分(见示例3中的解释说明)。

    弗兰克的猫
  • 17岁!Kaggle史上最年轻Grandmaster诞生:高中自学3年登顶

    在AI和大数据圈的人,应该没有不知道Kaggle的,这是全球首屈一指的数据科学、机器学习竞赛和分享平台。去年被谷歌收购时还一度引发业界轰动。企业和研究者可以在K...

    新智元
  • Flink-1.9流计算开发:一、最初的开始HELLO WORLD

    首先我们需要需要了解的一个概念是Apache Flink支持处理流式计算(stream)和批量计算(batch),但是在目前版本中这两种计算方式各自拥有自己独立...

    cosmozhu
  • 学习Spring的思考框架

    很早之前听同事说:“要开会了。我都知道领导要问什么,就那几板斧。”其实领导之所以为领导,人家问的问题确实很合情合理,甚至可以说一针见血。而之所以能问出来这些合理...

    静儿
  • 让移动开发更简单,腾讯云上线移动开发平台打造云端一体化

    腾讯云正式上线移动开发平台 MobileLine,借助腾讯在移动应用开发领域的成熟积累,帮助移动开发者低成本、快速的构建弹性、高质量的精品应用。

    赫兹
  • 如何将ABAP透明表的内容导入PostgreSQL数据库

    In my previous blog Replicate ABAP database table definition to PostgreSQL the s...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券