-
Notifications
You must be signed in to change notification settings - Fork 87.4k
Open
Description
import os
import requests
from flask import Flask, request, jsonify
app = Flask(name)
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
TELEGRAM_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
def send_telegram_message(message_text):
if not TELEGRAM_BOT_TOKEN or not TELEGRAM_CHAT_ID:
return False
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
payload = {
'chat_id': TELEGRAM_CHAT_ID,
'text': message_text,
'parse_mode': 'Markdown'
}
try:
response = requests.post(url, data=payload, timeout=10)
return response.json().get('ok', False)
except Exception:
return False
@app.route('/')
def home():
return "✅ Telegram SMS 转发器运行正常!"
@app.route('/sms_webhook', methods=['POST'])
def sms_webhook():
try:
data = request.get_json(silent=True) or request.form
sms_content = data.get('sms_content', '')
from_number = data.get('from_number', '未知号码')
if not sms_content:
return jsonify({"status": "error", "message": "缺少短信内容"}), 400
telegram_message = f"*📱 新短信通知*\\n*发件人:* `{from_number}`\\n*内容:* \\n```\\n{sms_content}\\n```"
success = send_telegram_message(telegram_message)
if success:
return jsonify({"status": "success", "message": "消息已转发到 Telegram"}), 200
else:
return jsonify({"status": "error", "message": "发送到 Telegram 失败"}), 500
except Exception as e:
return jsonify({"status": "error", "message": f"服务器错误: {str(e)}"}), 500
if name == 'main':
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
Metadata
Metadata
Assignees
Labels
No labels