我過去一直在使用此自動化,沒有任何問題。設置如下:HTTP 節點下載映像並將其作為文件(二進制)返回。我可以從 n8n 工作流程中查看和下載該映像,這表示該部分仍可正常工作。然後將該映像傳遞給 Discord 節點,該節點發送消息並將映像作為文件附加。連接方法是 Webhook。
這之前一直運行完美。最近我重新啟用它,但現在 Discord 節點返回以下錯誤:
“chunk” 參數必須是字符串、Buffer 或 Uint8Array 的實例。收到類型 boolean (false) [項目 0]
項目 0 應該是輸入數據中的第一項。但是該項確實具有有效的映像(二進制數據)。
json 數據和二進制數據之間沒有不匹配,兩者的項目數量相同。
如果我從 Discord 節點中移除「文件」,工作流程就可以正常工作。
我所希望的是消息中包含映像。因此,如果有其他方法可以實現,我也很樂意。我確實有一個映像的 URL,但即使將其插入「URL 映像」或「URL 縮略圖」,它也不會在 Discord 中顯示。
你好 @Utz
繞過此錯誤並將圖片恢復回 Discord 的最可靠方法是使用 HTTP Request 節點直接與 Discord Webhook 通訊。
以下是確切的設定方式:
- 將 Discord 節點替換為 HTTP Request 節點。
- Method: 設為
POST。
- URL: 在此貼上你的 Discord Webhook URL。
- Authentication: 無(Webhook 通過 URL 本身進行驗證)。
- Send Body: 切換為開啟。
- Body Content Type: 選擇 Form-Data (Multipart)。
- 指定 Body 參數:
- File Upload:
- 點擊 Add Parameter →→ 選擇 Binary File。
- Name: 輸入
file(這是 Discord 期望的確切鍵名)。
- Input Data Field Name: 輸入
thumbdata(對應你的二進位屬性名稱)。
- Message/Embeds:
- 點擊 Add Parameter →→ 選擇 Text。
- Name: 輸入
payload_json。
- Value: 輸入你的訊息和嵌入的 JSON。
- 範例:
{"content": "Here is your image!", "embeds": [{"title": "Image Title", "description": "Description here"}]}
(你可以在此使用表達式從之前的節點提取資料,只需確保最終結果是有效的 JSON 字符串即可)。
感謝您的協助,但這似乎不起作用。
只要我使用「Form-Data」就會失敗,並出現各種錯誤。
如果我只使用一個參數(「Text」不可用,只能使用 Form-Data)
type: form data
name: payload_json
value: {"content":"test message"}
結果會產生此錯誤:
data should be a string, Buffer or Uint8Array [item 0]
如果我新增二進位參數,錯誤會變成:
The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later. [item 0]
當我改用「JSON」類型時,我可以傳送簡單的測試訊息,所以問題不在 Discord,而在 N8N。
通過更新 N8N 至最新版本解決了。Discord 節點現在按預期運作,並與過去的表現一致。