返回

Serverless+Python:用云服务为女朋友送上专属浪漫

后端

缘起:程序员也可以很浪漫

作为程序员,我们常被认为不解风情,但我们也有浪漫的一面。我们可以用技术来表达我们的爱意。

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搭建一个定时任务,每天自动发送天气预报和情话给女朋友。希望这个小项目能让你在女朋友面前展示你的浪漫一面。