@@ -169,13 +169,39 @@ jobs:
169
169
170
170
# 发送到Server酱
171
171
if [ -n "${{ secrets.SERVERCHAN_KEY }}" ]; then
172
- curl -X POST "https://sctapi.ftqq.com/${{ secrets.SERVERCHAN_KEY }}.send" \
173
- -H "Content-Type: application/json" \
174
- -d "{
175
- \"title\": \"${TITLE}\",
176
- \"desp\": \"${MESSAGE}\"
177
- }"
178
- echo "📱 Server酱通知已发送"
172
+ echo "📱 准备发送Server酱通知..."
173
+
174
+ # 转义特殊字符以确保JSON格式正确
175
+ ESCAPED_TITLE=$(echo "${TITLE}" | sed 's/"/\\"/g' | sed 's/\\/\\\\/g')
176
+ ESCAPED_MESSAGE=$(echo "${MESSAGE}" | sed 's/"/\\"/g' | sed 's/\\/\\\\/g')
177
+
178
+ # 创建JSON payload
179
+ JSON_PAYLOAD="{\"title\": \"${ESCAPED_TITLE}\", \"desp\": \"${ESCAPED_MESSAGE}\"}"
180
+
181
+ echo "🔗 发送到: https://sctapi.ftqq.com/${{ secrets.SERVERCHAN_KEY }}.send"
182
+ echo "📝 标题: ${TITLE}"
183
+
184
+ # 发送请求并捕获响应
185
+ RESPONSE=$(curl --location "https://sctapi.ftqq.com/${{ secrets.SERVERCHAN_KEY }}.send" \
186
+ --header "Content-Type: application/json" \
187
+ --data "${JSON_PAYLOAD}" \
188
+ --write-out "HTTPSTATUS:%{http_code}" \
189
+ --silent)
190
+
191
+ # 分离HTTP状态码和响应体
192
+ HTTP_STATUS=$(echo $RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
193
+ RESPONSE_BODY=$(echo $RESPONSE | sed -e 's/HTTPSTATUS:.*//g')
194
+
195
+ echo "📊 HTTP状态码: ${HTTP_STATUS}"
196
+ echo "📄 响应内容: ${RESPONSE_BODY}"
197
+
198
+ if [ "${HTTP_STATUS}" -eq 200 ]; then
199
+ echo "✅ Server酱通知发送成功"
200
+ else
201
+ echo "❌ Server酱通知发送失败 (HTTP ${HTTP_STATUS})"
202
+ echo "🔍 错误详情: ${RESPONSE_BODY}"
203
+ fi
179
204
else
180
205
echo "⚠️ 未配置Server酱密钥,跳过通知"
206
+ echo "💡 提示: 请在GitHub Secrets中添加 SERVERCHAN_KEY"
181
207
fi
0 commit comments