返回
Serverless+Python:用云服务为女朋友送上专属浪漫
后端
2024-02-04 04:05:18
缘起:程序员也可以很浪漫
作为程序员,我们常被认为不解风情,但我们也有浪漫的一面。我们可以用技术来表达我们的爱意。
Serverless浪漫派送系统
今天,我们要用Serverless+Python来搭建一个定时任务,每天自动发送天气预报和情话给女朋友。
代码实现
1. 准备工作
首先,你需要一个阿里云账号。没有的话,注册一个即可。
2. 创建函数
登录阿里云控制台,找到Serverless函数计算。点击创建函数,选择Python 3.6。
3. 编辑函数
在函数代码编辑器中,粘贴以下代码:
import json
import os
import requests
def main_handler(event, context):
"""
主函数
"""
# 获取环境变量
weather_key = os.environ.get('WEATHER_KEY')
love_key = os.environ.get('LOVE_KEY')
# 获取天气预报
weather_url = 'https://api.seniverse.com/v3/weather/daily.json'
weather_params = {
'key': weather_key,
'location': '北京',
'start': '0',
'days': '1',
}
weather_response = requests.get(weather_url, params=weather_params)
weather_data = json.loads(weather_response.text)
# 获取情话
love_url = 'https://api.lovelive.tools/api/SweetNothings'
love_params = {
'key': love_key,
}
love_response = requests.get(love_url, params=love_params)
love_data = json.loads(love_response.text)
# 发送邮件
email_to = '你的女朋友的邮箱'
email_subject = '天气预报和情话'
email_body = '今天的天气预报是:' + weather_data['results'][0]['daily'][0]['text_day'] + '\n' + '今天的' \
'情话是:' + love_data['data']
email_from = '你的邮箱'
email_password = '你的邮箱密码'
smtp_server = 'smtp.163.com'
smtp_port = 465
smtp_obj = smtplib.SMTP_SSL(smtp_server, smtp_port)
smtp_obj.login(email_from, email_password)
smtp_obj.sendmail(email_from, email_to, email_body)
smtp_obj.quit()
return '成功发送天气预报和情话'
4. 部署函数
点击部署函数,选择触发方式为定时触发,触发周期为每天8点。
5. 设置环境变量
在环境变量中,设置WEATHER_KEY和LOVE_KEY。WEATHER_KEY是你的天气预报API的Key,LOVE_KEY是你的情话API的Key。
6. 测试函数
点击测试函数,看看是否能正常发送邮件。
总结
通过本教程,你学会了如何使用Serverless+Python搭建一个定时任务,每天自动发送天气预报和情话给女朋友。希望这个小项目能让你在女朋友面前展示你的浪漫一面。