使用 Python 和 Twilio 实现每日自动发送天气短信
简介
利用 Twilio 提供的免费试用额度,结合 Python 脚本可以自动化发送短信。本文将介绍如何配置环境、获取凭证以及编写定时任务,实现每天自动向指定号码发送天气信息。
准备工作
注册账号
要发送短信,首先需要访问 Twilio 官网注册一个账号。
- 访问 https://www.twilio.com/。
- 点击 Sign Up 进行注册。
- 填写邮箱和密码等资料,提交后需完成人机验证(调整图片方向)。
- 通过邮箱和手机号验证激活账户。
获取试用号码
注册成功后,Twilio 会提供一个用于测试的虚拟号码。
- 登录后进入控制台 Dashboard。
- 点击 "Get a Trial Number" 按钮。
- 系统会分配一个以 +1 开头的美国号码,该号码将作为发送方。
验证接收号码
在试用模式下,Twilio 限制只能向经过验证的号码发送短信。
- 在控制台找到 "Verified Numbers" 选项。
- 点击 "Add a Verified Number"。
- 输入目标接收号码(如女朋友或家人的手机号)。
- 选择通过短信验证码方式验证,输入收到的验证码即可激活。
注意:免费版通常仅支持验证一个号码。如需更换,需先删除旧号码。
代码实现
安装依赖
运行代码前,需要安装必要的 Python 库。
pip install twilio requests schedule
twilio: 官方 SDK,用于调用短信接口。requests: 用于请求天气 API。schedule: 简单的定时任务库。
核心逻辑
以下是一个完整的示例代码,包含获取天气信息和发送短信的功能。
import os
from twilio.rest import Client
import requests
import schedule
import time
# 配置信息 (建议从环境变量读取)
ACCOUNT_SID = 'your_account_sid'
AUTH_TOKEN = 'your_auth_token'
TWILIO_NUMBER = '+1234567890' # 替换为获取的试用号码
RECIPIENT_NUMBER = '+8613800000000' # 替换为已验证的目标号码
WEATHER_API_KEY = 'your_weather_api_key' # 替换为天气服务 API Key
():
url =
:
response = requests.get(url, timeout=)
data = response.json()
data.get() == :
temp = data[][]
desc = data[][][]
:
Exception e:
():
client = Client(ACCOUNT_SID, AUTH_TOKEN)
:
message_obj = client.messages.create(
body=message,
from_=TWILIO_NUMBER,
to=RECIPIENT_NUMBER
)
()
Exception e:
()
():
weather_msg = get_weather()
full_message =
send_sms(full_message)
__name__ == :
schedule.every().day.at().do(job)
()
:
schedule.run_pending()
time.sleep()


