1. 首页 > 出行

桐乡天气预报一周 Linux下CrondAPI和插件免费短信的使用方法-乐题库

菜鸟专用,大神勿入

------------------------------------

工具:

.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