Ранее я написал статью, используя облачные функции для ее реализации. Затем я внезапно вспомнил, что на прошлой неделе я видел статью сообщества о новой функции запуска Python в Интернете, поэтому я подумал об использовании Python для реализации этой маленькой забавы. Давайте начнем работать над этим прямо сейчас.
1. Публичный аккаунт WeChat,Если у вас нет официальной учетной записи WeChat, вы можете использовать тестовую учетную запись.https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,Ниже я беру номер теста в качестве примера.,делать уроки.
1.2 Сначала после входа в тестовую учетную запись с помощью WeChat нам нужно скопировать appID и appsecret. (Пожалуйста, обновите страницу перед копированием, потому что она изменится)
1.3 Затем вам нужно попросить свою девушку подписаться на тестовую учетную запись. На странице есть QR-код. Отправьте ей его и попросите ее отсканировать код в WeChat, чтобы подписаться на него. Таким образом, вы можете получить openid своей девушки. в правом столбце QR-кода: Код работает.
1.4 Затем найдите в Baidu код города вашей девушки, который можно использовать для запроса погоды в этом городе.
1.5 Далее нам нужно добавить соответствующее шаблонное сообщение. Здесь я беру свой код в качестве примера и делаю пример для справки.
{{first.DATA}}
Текущий город: {{keyword1.DATA}}
Сегодняшняя погода: {{keyword2.DATA}}
Текущая температура: {{keyword3.DATA}}
Теплое напоминание: {{keyword4.DATA}}
Мы уже влюблены: {{keyword5.DATA}}
До дня рождения Сяобао остались дни: {{keyword6.DATA}}
{{remark.DATA}}
1.6 После того, как вышеуказанная работа будет выполнена, вы можете внести коррективы по следующему коду.
import json
import urllib.request
from datetime import datetime
# Параметры конфигурации
appId = 'appId' # Соответствует собственному appId
appSecret = 'appSecret' # Соответствует собственному appSecret
touser = 'oIpRe6aPBBI-Yne8vy1clCdWUFyM' # Открытый идентификатор подруги
template_id = "ryM6DGiZt9rbKVCpkjGLJ45_n40xakLcHd1Fm6d2RdQ" # идентификатор шаблона
city_code = '101200101' # Код города
# получать access_token
wxgzhurl = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appId}&secret={appSecret}"
with urllib.request.urlopen(wxgzhurl) as response:
access_token_Arr = json.loads(response.read().decode('utf-8'))
ACCESS_TOKEN = access_token_Arr.get('access_token')
if ACCESS_TOKEN is None:
print("access_token Ключ не существует или неверен, используйте свой собственный access_token")
else:
# Посчитать количество дней в любви
lovestart = datetime(2022, 8, 1)
love = (datetime.now() - lovestart).days
# Посчитать количество дней до следующего дня рождения
birthdaystart = datetime(2023, 9, 25)
birthday = (birthdaystart - datetime.now()).days
birthday = abs(birthday)
# получать информацию о погоде
tianqiurl = f'http://t.weather.sojson.com/api/weather/city/{city_code}'
with urllib.request.urlopen(tianqiurl) as response:
tianqiapi = json.loads(response.read().decode('utf-8'))
# Добрые советы
wxts = «Пейте больше воды» # Вы можете оставить это поле пустым или написать предложение
# Создать шаблонное сообщение
data = {
'touser': touser,
'template_id': template_id,
'data': {
'keyword1': {'value': tianqiapi['cityInfo']['city'], 'color': "#000"},
'keyword2': {'value': f"{tianqiapi['data']['forecast'][0]['type']} завтра: {tianqiapi['data']['forecast'][1]['type']}", 'color': "#000"},
'keyword3': {'value': f"{tianqiapi['data']['forecast'][0]['low']}-{tianqiapi['data']['forecast'][0]['high']}", 'color': "#000"},
'keyword4': {'value': wxts, 'color': "#FF00FF"},
'keyword5': {'value': ж"{любовь}небо", 'color': "#FF1493"},
'keyword6': {'value': f"{день рождения}день", 'color': "#C71585"}
}
}
# Отправить шаблонное сообщение
url = f"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={ACCESS_TOKEN}"
req = urllib.request.Request(url, data=json.dumps(data).encode('utf-8'), headers={'content-type': 'application/json'})
with urllib.request.urlopen(req) as response:
res = json.loads(response.read().decode('utf-8'))
if res['errcode'] == 0 and res['errmsg'] == "ok":
print("Отправлено успешно!")
else:
print("Отправка не удалась! Пожалуйста, проверьте код!!!")
Конечный эффект следующий.
1. Если вы хотите запускать его каждый день, вы можете разместить его на облачном сервере или на легком сервере. Если вы большой начальник, вы можете разместить его где угодно.
2. Если Сяобай,Вы можете попробовать использовать Tencent CloudОблачная функция,Это проще использовать,Ниже я будуОблачная функцияЗапустить как пример。
3. Сначала авторизуемся в Tencent Cloud,Искать в строке поискаОблачная функция
4.ВходитьОблачная функция,Нажмите, чтобы испытать сейчас
3. Здесь выбираем следовать шагам, затем заливаем код в редактор ниже и заполняем изначально подготовленные параметры согласно китайским подсказкам в коде.
4. Затем откройте созданную облачную функцию и проверьте ее, чтобы увидеть, получил ли WeChat сообщение, то есть тестовая учетная запись, на которую вы только что подписались, отправит вам сообщение.
5. После получения сообщения настраиваем таймер на автоматический запуск каждое утро (7:30 утра - это 30 7 * * *)
В мире программирования мы используем магию Python, чтобы регулярно отправлять добрые утренние сообщения близким. Всякий раз, когда кодекс и забота встречаются, возникает теплый сюрприз. Я надеюсь, что этот код сможет и дальше передавать заботу по кругу, чтобы любовь и технологии могли идеально сочетаться каждое утро. (Это бесполезно, это больше для общения. Просто отложите клавиатуру и мышь и проводите больше времени со мной)