您好,我剛完成 n8n 課程的第 2 級,但遇到了持續的問題。錯誤工作流程成功地將數據傳遞到 Discord 伺服器,但我一直收到這條訊息「您的訊息無效,請確保您發送的是確切要求的文本。」有人可以幫忙嗎?
「您的訊息無效,請確保您發送的是確切要求的文本。」
您好,我剛完成 n8n 課程的第 2 級,但遇到了持續的問題。錯誤工作流程成功地將數據傳遞到 Discord 伺服器,但我一直收到這條訊息「您的訊息無效,請確保您發送的是確切要求的文本。」有人可以幫忙嗎?
「您的訊息無效,請確保您發送的是確切要求的文本。」
歡迎 @Efe_Odjada1
看看這份文件,它會幫助你達到第 2 級 Dealing with errors in workflows | n8n Docs
感謝 Tammy。其實工作流程中沒有錯誤。這是跟 Level 2 課程的最後部分有關。我已經做完考試,但我發現我一直收到一個錯誤訊息,說它不是錯誤,而是一條訊息說你的訊息無效。請確保你發送的是確切要求的文字。
但是輸出正在被輸出到 Discord 伺服器,所以這不是任何問題,但我認為這與 Discord 伺服器有關,它的作用就像一個 HTTP 請求節點。這其實是我面臨的挑戰。
啊完美,我現在明白了 @Efe_Odjada1
你能請先傳一下截圖嗎?
@Efe_Odjada1 我們一步一步來…
1- 請分享你的課程 ID
2- 要完成課程,你需要在測驗和工作流程中都取得成功
3- 分享你的 JSON(請把你的流程複製貼上到這裡)
我需要直觀地了解到底發生了什麼。
那個「message was invalid, please make sure you are sending the exact text requested」錯誤不是來自 n8n,而是來自 Discord 拒絕了 payload 結構。你的錯誤工作流程正在執行並到達 Discord,這是最難的部分,所以這只是訊息格式的問題。
通常有兩個原因。如果你在 webhook 模式中使用 Discord node,content 欄位有硬性限制(2000 個字元),而傾倒完整錯誤物件加上堆疊追蹤的錯誤工作流程會超過該限制,所以 Discord 會拒絕整個請求。削減你發送的內容:只發送工作流程名稱、失敗的 node 和錯誤訊息,不要發送整個 execution JSON。其次,如果你用 HTTP Request node 手動建立請求,Discord 需要將 body 作為 JSON 並帶有 content 屬性({ “content”: “your text” }),不符合會拋出完全相同的錯誤。檢查你是否在它期望的 JSON 結構之處發送了原始文字。
發送你的錯誤工作流程中構建 Discord 訊息的部分,通常就能明顯看出是哪一種情況。
是的,他們確實做了。
感謝 Akin,我會這樣做,但如果我沒理解錯的話,在這個例子中上一個節點是「錯誤觸發」節點,對嗎?
@Efe_Odjada1 ,你考慮過我給的回答嗎?
是的,我有。Tamy。請看以下詳細資訊:
課程 ID:294dc8b5a37f8f05e27abed4af0a3d02
{
“name”: “Error Workflow class”,
“nodes”: [
{
“parameters”: {},
“type”: “n8n-nodes-base.errorTrigger”,
“typeVersion”: 1,
“position”: [
-400,
-272
],
“id”: “bb092f03-cf4d-4ebc-b16a-f41de0ab5f38”,
“name”: “Error Trigger”
},
{
“parameters”: {
“authentication”: “webhook”,
“content”: “=工作流程 {{ $json.workflow.name }} 失敗,錯誤訊息為:{{ $json.execution.error.message }}。上次執行的節點:{{ $json.execution.lastNodeExecuted }}。在此處檢查此工作流程執行:{{ $json.execution.url }} 我的唯一 ID:294dc8b5a37f8f05e27abed4af0a3d02\n”,
“options”: {}
},
“type”: “n8n-nodes-base.discord”,
“typeVersion”: 2,
“position”: [
-176,
-272
],
“id”: “6ab7a173-39fe-40b7-ac61-e1efb11cf0a9”,
“name”: “Discord1”,
“webhookId”: “10314504-197e-4372-8b6f-4a4bf0e27e59”,
“credentials”: {
“discordWebhookApi”: {
“id”: “Lbq7pZ6uvqoHkyOs”,
“name”: “n8n Discord Channel”
}
}
}
],
“pinData”: {},
“connections”: {
“Error Trigger”: {
“main”: [
[
{
“node”: “Discord1”,
“type”: “main”,
“index”: 0
}
]
]
},
“Discord1”: {
“main”: [
]
}
},
“active”: true,
“settings”: {
“executionOrder”: “v1”,
“binaryMode”: “separate”
},
“versionId”: “d1721dc5-8db0-48f5-9c7f-c5ec256697d6”,
“meta”: {
“templateCredsSetupCompleted”: true,
“instanceId”: “e9c31beabcdb75730bd28ced0cf214a1bc9610c6dd95d58689f0b7cada3d4505”
},
“id”: “lc6Bw3bq64ROgpw1”,
“tags”:
}
你有檢查過任何空白字符嗎?我不知道它是否應該在那裡,但我在 Discord 訊息中看到了「\n」,甚至這裡那裡的一個空白字符都可能導致那個錯誤。
當然有。我試過了,然後又改回沒有空白的文字
你需要把訊息發送到 Discord。
請查看課程文件並按照步驟完成課程。
進入 n8n 的 Discord 伺服器讓你的使用者被識別,然後執行工作流程。
你需要在圖片的 3 個欄位都有打勾的狀態。
之後請告訴我們是否有效。
我已经尽力想办法修复这个问题,但我卡住了
你好,早上好 @Efe_Odjada1
我建議你重新開始以了解發生了什麼,因為這是一個學習流程,理想的做法是你自己嘗試。
請參考這份文檔
Notifying the team | n8n Docs