GHL 和 N8N - 工作流程中 HTTP 連線失敗

描述問題/錯誤/問題

我不明白為什麼我在 HTTP 節點上連接到 Go High Level 時持續收到 JWT 錯誤。我已經使用 Go High Level 進行了故障排除 - PIT 運作正常,從我所見的情況來看設定是正確的。

錯誤訊息是什麼(如有)?

顯示的錯誤是「授權失敗 - 請檢查您的認證」,然後是 JWT 錯誤。

授權失敗 - 請檢查您的認證

JWT 無效

關於您的 n8n 設定的資訊

  • n8n 版本:
  • 資料庫(預設值:SQLite):
  • n8n EXECUTIONS_PROCESS 設定(預設值:own, main):
  • 執行 n8n 的方式(Docker、npm、n8n cloud、desktop app):
  • 作業系統:

@Just_Stay 你怎樣傳送 PIT——是在 Authorization header 中以「Bearer 」的形式傳送的嗎?你呼叫的是哪個 GHL API 端點(v1 還是 v2)?Invalid JWT 通常表示要麼 token 格式未被識別,要麼你呼叫的是根本不接受 PIT 的 v1 端點。

@Just_Stay

我認為你的 HTTP Request 節點中有兩個問題:

  1. Authorization 標頭缺少 Bearer 。將值從 pit-b7e4542a-... 改為 Bearer pit-b7e4542a-…。這就是你收到「Invalid JWT」的原因。

  2. Body 參數格式化。你的欄位名稱和值有多餘的引號,這會破壞請求。例如,"firstname" 應該只是 firstName(沒有多餘的引號),值應該是 {{ $json.body.first_name }},不需要 ="..." 包裝。

  • 將「Body Content Type」改為 JSON,並將 body 貼上為乾淨的 JSON 物件,而不是使用個別欄位:
{
  "firstName": "{{ $json.body.first_name }}",
  "lastName": "{{ $json.body.last_name }}",
  "email": "{{ $json.body.email }}",
  "phone": "{{ $json.body.phone }}",
  "locationId": "Wyba2v9gnxaXgpUCNypq",
  "tags": ["business-guest", "source-suiteop", "stayed-0-3m"]
}           

希望有幫助 :crossed_fingers:

嗨,
我已經在授權標頭的正下方輸入了 PIT。我沒有在任何標頭部分中放置 Bearer。

GHL 端點是 V2

你好,

第一步已經起作用,我現在收到以下訊息。

我也更改了內文,並將其全部放在一個標題下 - 我不確定是否做得正確

感謝您的幫助 -

你好 Just_stay,

Bearer 修正是正確的。新的錯誤「Authentication failed」表示以下其中一項:

  1. PIT-Token 沒有正確的 scopes。在 GHL 的 Settings、Private Integrations 中檢查 Token 是否有權限存取你要呼叫的 Endpoint

  2. Endpoint 本身期望不同的 Token 類型,有些 GHL v2 Endpoints 需要 Location Token,而不是 Agency PIT

你在呼叫哪個 Endpoint,是在哪個層級(Agency 或 Location)?

我正在 GHL 的子帳戶級別進行調用。

我啟用的作用域為:

@Just_Stay,歡迎來到 n8n 社群。

看看這個節點是否能幫助你

{
“nodes”: [
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “leadconnector-contact”,
“options”: {}
},
“id”: “5b465b87-8c97-4b13-8db4-bcd869615e13”,
“name”: “Webhook”,
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 2.1,
“position”: [
240,
304
],
“webhookId”: “51fb3116-005f-424e-924a-e004dab7f3b8”
},
{
“parameters”: {
“method”: “POST”,
“url”: “https://services.leadconnectorhq.com/contacts/”,
“authentication”: “genericCredentialType”,
“genericAuthType”: “httpHeaderAuth”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “Version”,
“value”: “2021-07-28”
}
]
},
“sendBody”: true,
“bodyParameters”: {
“parameters”: [
{
“name”: “firstName”,
“value”: “={{ $json.body.first_name }}”
},
{
“name”: “lastName”,
“value”: “={{ $json.body.last_name }}”
},
{
“name”: “email”,
“value”: “={{ $json.body.email }}”
},
{
“name”: “phone”,
“value”: “={{ $json.body.phone }}”
},
{
“name”: “locationId”,
“value”: “Wyba2v9gnxaXgpUCNypq”
},
{
“name”: “tags”,
“value”: “={{ [‘business-guest’, ‘source-suiteop’, ‘stayed-0-3m’] }}”
}
]
},
“options”: {}
},
“id”: “6748cc42-2ad7-46b2-a2e5-5b41f25f3c67”,
“name”: “Create LeadConnector Contact”,
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.4,
“position”: [
464,
304
]
}
],
“connections”: {
“Webhook”: {
“main”: [
[
{
“node”: “Create LeadConnector Contact”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“pinData”: {},
“meta”: {
“instanceId”: “ea0c2eec4b76caa69b4b4c5710d93f227ef34fb351dbfc568d1671e154e38c4a”
}
}

在您的 Authorization 標頭中,您的值設定為只有權杖,如下所示:
pit-b7e4542a-00c5-4843-8f75-504d9da5b3ab

您需要在其前面加上「Bearer」這個字和一個空格,如下所示:
Bearer pit-b7e4542a-00c5-4843-8f75-504d9da5b3ab
GoHighLevel 在權杖前需要「Bearer」這個字。沒有它,伺服器無法將權杖識別為有效,這正是您收到「Invalid JWT」錯誤的原因,即使您的權杖是正確的。
修復方法:

1.開啟您的 HTTP 節點
2.向下捲動到「Headers」部分
3.找到「Authorization」列
4.將值更改為:Bearer 再加上一個空格,然後是您的權杖

這應該會立即修復問題。

如果Bearer問題已解決,但Location Token還有問題的話,歡迎來找我!