[翻译]通过树莓派发送短信Send SMS Messages from Raspberry Pi
本站首发,转载请注明作者及引用网址
原文地址:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=69286&sid=89b99af621144e400c588b4ef6cad708
写这篇文章背景故事很简单。我有一个树莓派,花了35刀的一个超小的arm计算机。我用它运行Nagios来监控我的服务器(因为过段时间我要出去旅行)。我希望当我的服务器有警报信息的时候,它会给我发一条短信,而我实在不原意在花钱买个SMS网关,太奢侈了,实际上email就可以了,但我更喜欢短信。然后我就开始找解决方案。
我在githut上找到一个允许我通过简单的python脚本来发送短信,地址是https://github.com/korylprince/pygvoicelib。下面的步骤将讲述如何如何通过pi来发送短信。步骤1:确保你的PI已经安装了系统并且有internet连接
步骤2:注册一个google voice帐号,这里需要一个gmail的帐号。
步骤3:在你的google帐号里面允许2步验证,地址是https://accounts.google.com/b/0/IssuedAuthSubTokens
步骤4:创建一个指定应用的密码,打开https://accounts.google.com/b/0/IssuedAuthSubTokens,移到最下面,在name框里填上Raspberry Pi(或者任何你想要的名字来标示你的设备),然后点击生成密码。
你将会得到一个一次性的密码
步骤5:登陆到你的Pi打开命令行或者通过putty连接到SSH
然后进入到你的home目录,比如我的是/home/pi
`cd /home/pi
`
步骤6: 从github克隆所有代码
首先运行下面的指令来阻止ssl错误
`export GIT_SSL_NO_VERIFY=1
`
然后运行下面的指令来克隆
`git clone https://github.com/korylprince/pygvoicelib.git
`
步骤7:让Pi得到google的授权
cd到刚创建的pygvoicelib目录
运行以下指令:
`python get_auth.py
`
将会提示你输入你gmail帐号和你在第四步得到的的应用的密码。在你输入这些信息以后,你会看到很多参数显示在终端上。记住以下参数,你在后面的步骤里将会用到
username
apppass
auth_token
rnr_se
步骤8:创建一个脚本来发送短信
运行下面的指令,你也可以用nano来编辑
`vi text.py
`
将下列的代码贴到你创建的文件里面
`#!/usr/bin/python
import pygvoicelib
number = raw_input(‘number:’)
txtmsg = raw_input(‘message:’)
client = pygvoicelib.GoogleVoice(username,apppass,auth_token,rnr_se)
client.sms(number,txtmsg)
`
用你在第7步创建的的username,apppass,auth_token,和rnr_se来替换这个文件中的参数
示例Example:
`#!/usr/bin/python
import pygvoicelib
number = raw_input(‘number:’)
txtmsg = raw_input(‘message:’)
client = pygvoicelib.GoogleVoice(‘name@gmail.com’,‘asdfahrwsthjtrh’,’4k3EozF_Qmrg3tD2_m56nQtFHCVSaTdUxb7HvcaN6g3PV929VH0eH4GGVOVpbVK2O6EaGFzMDYA6PhPjaEHr0ZGjO1GQN3RGhQLXqePWfglbXnA2n7XpUophOk5qztQyv2fYM7eYgtVCYeO6txTqbDQAAANsAAABZ7d0GTL2pJsUauPkH4Z3cpbJFqjfLZYfhok1b11pIMDnEOypZgIcOVdPEt8jEMx7oY9hHJeJoDQZYndDJDu8uoDbDWgxl87GMy990snKWR8iy8VIB17769eVWboa3224U8DLZLUWMpP0d4hfsDK5MQ’,‘L6tph126BjmNjDcfTZGaWYeb+sk=’)
client.sms(number,txtmsg)
`
步骤9:发送短信
运行以下的指令
`python text.py
`
它将提示你输入电话号码以及短信内容
步骤10:庆祝,打开一瓶啤酒然后好好的享受吧。
我另外也在我的blog写了这个操作步骤:http://citycorpse.com
精彩回复:
by default_user8 » Wed Feb 12, 2014 7:10 pm
Try sms via email key
here is a list by provider
Provider Format
Sprint phonenumber@messaging.sprintpcs.com
Verizon phonenumber@vtext.com
T-Mobile phonenumber@tmomail.net
AT&T phonenumber@txt.att.net
AIM +1phonenumber
by drgeoff » Thu Feb 13, 2014 10:16 am
DougieLawson wrote:I don’t think using Google Voice to send SMS messages is available outside the US & Canada. 我觉得这个除了美国和加拿大以外的地方都用不了
For 99% of the population of USA and Canada, that is the whole world. ![]()
对于美国和加拿大的99%人口来说,这就是整个世界了。
老美的傲慢和自豪感觉得他们的世界就是整个世界了,当然也是调侃的语气啦,至少人家分享的精神就很好。
至于说google voice不能在天朝用的问题,只能通过翻墙来解决了。可以在手机上装一个google voice的客户端,接受推送还是可以的。另外一个解决方案就是用飞信了,注册以后,发送邮件到13xxx@139.com,就可以收到短信了,完全免费哦,不过只能发送到移动号码,电信和联通的貌似也有类似功能,但是没有用过,可以试验一下。