桐乡天气预报一周 Linux下CrondAPI和插件免费短信的使用方法-乐题库
作者:家修网 • 更新时间:2022-07-28 22:22:41 •阅读
菜鸟专用,大神勿入
------------------------------------
工具:
.5
VPS - .5
天气预报API:心知天气 - 天气数据API和插件
免费短信: - APIs for Text , VoIP & Voice in the Cloud
(非广告,以上两个API都有免费和收费版本桐乡天气预报一周,而我只用它们的免费服务)
0. 前期准备
先去以上两个网站注册账号,然后熟悉一下两个API的使用方法,此处不表
1. 编写天气预报脚本
.py
#!/usr/bin/python
#-*- coding:utf-8 -*-
import requests
from twilio.rest import TwilioRestClient #注意要先pip install twilio
def getWeather():
# 设置心知天气的apikey
# 并构造请求URL
xinzhi_apikey = "XXXXX"
url = "https://api.thinkpage.cn/v3/weather/daily.json?key=%s&location=guangzhou&language=zh-Hans&unit=c&start=0&days=5" % xinzhi_apikey
# 获取天气预报信息
# 此处只取今天和明天2天的预报
r = requests.get(url)
w = r.json()["results"][0]["daily"]
today = "今天是%s,白天%s,晚上%s,最高气温%s,最低气温%s" % (w[0]["date"], w[0]["text_day"], w[0]["text_night"], w[0]["high"], w[0]["low"])
tomorrow = "明天是%s,白天%s,晚上%s,最高气温%s,最低气温%s" % (w[1]["date"], w[1]["text_day"], w[1]["text_night"], w[1]["high"], w[1]["low"])
message = today + '\n' + tomorrow
return message
def sendMessage(message):
'''接收传入的参数做为短信主体——即天气预报内容,发送到目标号码'''
# 设置twilio账户信息
twilio_account_sid = "你的twilio账户的account_sid"
twilio_auth_token = "你的twilio账户的auth_token"
client = TwilioRestClient(twilio_account_sid, twilio_auth_token)
# 注意to和from_两个参数所代表的手机号,都需要带有国家代码。如中国大陆手机号即+86开头再加上自己的手机号。from_中的号码直接复制twilio提供的号码即可
client.messages.create(to="接收者的手机号", from_="twilio提供给你的收发信息的手机号", body=message)
return None
if __name__ == "__main__":
weather = getWeather()
sendMessage(weather)
如果自己的配置信息没错,直接执行以上脚本,就可以在指定的目标手机号上接收到天气预报信息
2. 设置定时执行脚本
Linux下定时执行脚本,我用的是crond服务,直接在shell下执行
crontab -e
即可进入编辑定时执行任务的列表文件。具体的crond服务使用方法可参考Linux下Crond计划任务设置格式
我设置的是每天早上7点30分执行一次桐乡天气预报一周,这样我就可以在每天起床时即收到天气预报信息。列表编辑如下:
30 7 * * * /usr/local/python3.5/bin/python3 /home/xian/weather_forecast.py
由于我的VPS上同时存在着和,所以在要中指定编译器位置,再用于执行指定路径下的文件
----------------------------------------
由此,一个简单的短信天气预报就完成了。
如果有发现设置了并且各个参数正确但是不生效,可以试试重启crond服务
service crond restart
对于天气预报短信在这个年代是否还有必要,此处不讨论。
当然除了定时发送天气预报,还可以发送其它信息的。的一个好处就是不像国内的很多短信API,需要固定格式,类似验证码。它可以发送任何自定义内容。当然,免费版还是会有些冗余信息的:
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.9iwh.cn/chuxing/36192.html