Xero
這個連接器可讓您透過 SQL 存取 Xero 後端。
事前準備
使用 Xero 連接器前,請先完成下列工作:
- 在 Google Cloud 專案中:
- 確認已設定網路連線。如要瞭解網路模式,請參閱「網路連線」。
- 將 roles/connectors.admin IAM 角色授予設定連線器的使用者。
- 將下列 IAM 角色授予要用於連接器的服務帳戶:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
服務帳戶是特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取 Google API 資料的非人類使用者。如果您沒有服務帳戶,請務必建立服務帳戶。連接器和服務帳戶必須屬於同一個專案。詳情請參閱「建立服務帳戶」。
- 啟用下列服務:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
如要瞭解如何啟用服務,請參閱「啟用服務」。
如果專案先前未啟用這些服務或權限,系統會在設定連結器時提示您啟用。
Xero 設定
如要設定 Xero,必須完成下列工作:
設定 Xero 帳戶和 Xero 示範公司
產生 OAuth2.0 用戶端驗證詳細資料
- 登入 Xero 開發人員帳戶。
- 按一下「註冊」並按照提示操作。如果已有帳戶,請使用憑證登入。
- 前往開發人員資訊主頁的「我的應用程式」部分,然後前往 Xero 開發人員入口網站。
- 按一下「New App」(新應用程式) 或「Create a new app」(建立新應用程式),建立新應用程式。
- 輸入應用程式的必要詳細資料,例如應用程式名稱、說明、公司網址、隱私權政策網址、使用條款網址和回呼網址。
- 請務必選取適當的應用程式類型,以及與 Xero 示範公司整合時所需的權限。
- 將用戶端 ID 和用戶端密鑰儲存在安全位置,以供日後使用。
登入後,系統會將您導向 Xero 開發人員資訊主頁。
建立應用程式後,您會取得 OAuth 憑證,包括用戶端 ID 和用戶端密鑰。
建立整合時,請為每個結構定義仔細選取必要範圍,確保應用程式具備適當權限,可存取及使用必要公用程式。
如要瞭解如何驗證及擷取用戶端 ID 和用戶端密鑰,請參閱「擷取用戶端 ID 和用戶端密鑰」。
設定結構定義詳細資料
您可以根據模組選取結構定義。可用的結構定義包括會計、資產、澳洲薪資、檔案和專案。由於我們有五個不同的模組,因此您必須為每個模組建立不同的連線。
如要瞭解建立連線時可以指定的範圍,請參閱「範圍」一文。
設定授權詳細資料
如要瞭解如何設定授權網址,請參閱「 設定授權網址」。
設定連接器
連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連線,請按照下列步驟操作:
- 在 Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。
- 按一下「+ 建立新連線」,開啟「建立連線」頁面。
- 在「位置」部分中,選擇連線位置。
- 區域:從下拉式清單中選取位置。
連接器支援的地區包括:
如需所有支援的地區清單,請參閱「位置」一文。
- 點選「下一步」。
- 區域:從下拉式清單中選取位置。
- 在「連線詳細資料」部分,完成下列步驟:
- 連接器:從可用連接器的下拉式清單中選取「Xero」。
- 連接器版本:從可用版本的下拉式清單中選取連接器版本。
- 在「連線名稱」欄位中,輸入連線執行個體的名稱。
連線名稱必須符合下列條件:
- 連線名稱可使用英文字母、數字或連字號。
- 字母必須為小寫。
- 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
- 連結名稱不得超過 49 個字元。
- 視需要輸入連線執行個體的「Description」(說明)。
- 或者,可啟用 Cloud Logging,然後選取記錄層級。記錄層級預設為
Error
。 - 服務帳戶:選取具備必要角色的服務帳戶。
- 視需要設定「連線節點設定」:
- 節點數量下限:輸入連線節點數量下限。
- 節點數量上限:輸入連線節點數量上限。
節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連線器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。
- 結構定義:您要以資料庫結構定義存取的 Xero API。
- 租戶:設定要連結的 Xero 機構。可以是名稱或房客 ID。
- 詳細等級:連線的詳細等級,範圍為 1 到 5。詳細程度越高,記錄的通訊詳細資料就越多 (要求、回應和 SSL 憑證)。
- (選用) 按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
- 點選「下一步」。
-
在「Authentication」(驗證) 部分,輸入驗證詳細資料。
- 選取「驗證類型」並輸入相關詳細資料。
Xero 連線支援下列驗證類型:
- OAuth 2.0 用戶端憑證
- OAuth 2.0 授權碼授權
- 點選「下一步」。
如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。
- 選取「驗證類型」並輸入相關詳細資料。
- 檢查:檢查連線和驗證詳細資料。
- 點選「建立」。
設定驗證機制
根據要使用的驗證方式輸入詳細資料。
-
OAuth 2.0 用戶端憑證
- 用戶端 ID:連接器為您建立的應用程式提供的用戶端 ID。
- 用戶端密鑰:Secret Manager 密鑰,內含您建立的連結應用程式用戶端密鑰。
-
OAuth 2.0 授權碼授權
- 存取權杖:用於透過以授權碼流程為基礎的連線驗證要求。
- 用戶端 ID:用於要求存取權杖的用戶端 ID。
- 用戶端密鑰:用於要求存取權杖的用戶端密鑰。
連線設定
本節列出建立 Xero 連線時設定的各個欄位範例值。
會計伺服器連線類型
欄位名稱 | 詳細資料 |
---|---|
區域 | us-central1 |
連接器 | Xero |
連接器版本 | 1 |
連線名稱 | google-cloud-xero-accounting-connection |
服務帳戶 | SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com |
結構定義 | 會計 |
詳細程度 | 5 |
節點數量下限 | 2 |
節點數量上限 | 50 |
驗證 | OAuth 2.0 - 授權碼 |
用戶端 ID | CLIENT_ID |
範圍 | offline_access openid profile email accounting.transactions, accounting.reports.read, accounting.attachments, accounting.journals.read, accounting.settings, accounting.contacts, accounting.budgets.read |
用戶端密鑰 | CLIENT_SECRET |
Secret 版本 | 1 |
授權網址 | https://login.xero.com/identity/connect/authorize |
資產伺服器連線類型
欄位名稱 | 詳細資料 |
---|---|
區域 | us-central1 |
連接器 | Xero |
連接器版本 | 1 |
連線名稱 | google-cloud-xero-assets-connection |
服務帳戶 | SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com |
結構定義 | 資產 |
詳細程度 | 5 |
節點數量下限 | 2 |
節點數量上限 | 50 |
驗證 | OAuth 2.0 - 授權碼 |
用戶端 ID | CLIENT_ID |
範圍 | assets.read、assets |
用戶端密鑰 | CLIENT_SECRET |
Secret 版本 | 1 |
授權網址 | https://login.xero.com/identity/connect/authorize |
檔案伺服器連線類型
欄位名稱 | 詳細資料 |
---|---|
區域 | us-central1 |
連接器 | Xero |
連接器版本 | 1 |
連線名稱 | google-cloud-xero-files-connection |
服務帳戶 | SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com |
結構定義 | FILES |
詳細程度 | 5 |
節點數量下限 | 2 |
節點數量上限 | 50 |
驗證 | OAuth 2.0 - 授權碼 |
用戶端 ID | CLIENT_ID |
範圍 | files、files.read |
用戶端密鑰 | CLIENT_SECRET |
Secret 版本 | 1 |
授權網址 | https://login.xero.com/identity/connect/authorize |
Payrollaus 伺服器連線類型
欄位名稱 | 詳細資料 |
---|---|
區域 | us-central1 |
連接器 | Xero |
連接器版本 | 1 |
連線名稱 | google-cloud-xero-payroll-connection |
服務帳戶 | SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com |
結構定義 | PAYROLLAUS |
詳細程度 | 5 |
節點數量下限 | 2 |
節點數量上限 | 50 |
驗證 | OAuth 2.0 - 授權碼 |
用戶端 ID | CLIENT_ID |
範圍 | payroll.employees、payroll.payruns、payroll.payslip、payroll.timesheets、payroll.settings |
用戶端密鑰 | CLIENT_SECRET |
Secret 版本 | 1 |
授權網址 | https://login.xero.com/identity/connect/authorize |
專案伺服器連線類型
欄位名稱 | 詳細資料 |
---|---|
區域 | us-central1 |
連接器 | Xero |
連接器版本 | 1 |
連線名稱 | google-cloud-xero-projects-connection |
服務帳戶 | SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com |
結構定義 | 專案 |
詳細程度 | 5 |
節點數量下限 | 2 |
節點數量上限 | 50 |
驗證 | OAuth 2.0 - 授權碼 |
用戶端 ID | CLIENT_ID |
範圍 | projects、projects.read |
用戶端密鑰 | CLIENT_SECRET |
Secret 版本 | 1 |
授權網址 | https://login.xero.com/identity/connect/authorize |
實體、作業和動作
所有整合連接器都會為所連應用程式的物件提供抽象層。您只能透過這個抽象化程序存取應用程式的物件。抽象化會以實體、作業和動作的形式呈現。
- 實體: 實體可以視為已連結應用程式或服務中的物件,或是屬性集合。實體的定義因連接器而異。舉例來說,在資料庫連接器中,資料表是實體;在檔案伺服器連接器中,資料夾是實體;在訊息系統連接器中,佇列是實體。
不過,連接器可能不支援或沒有任何實體,在這種情況下,
Entities
清單會是空白。 - 作業: 作業是指您可以在實體上執行的活動。您可以對實體執行下列任一操作:
從可用清單中選取實體,系統會產生該實體可用的作業清單。如需作業的詳細說明,請參閱 Connectors 工作的實體作業。 不過,如果連接器不支援任何實體作業,系統就不會在
Operations
清單中列出這些不支援的作業。 - 動作: 動作是透過連接器介面提供給整合的第一類函式。動作可讓您變更一或多個實體,且因連接器而異。一般來說,動作會有一些輸入參數和輸出參數。不過,連接器可能不支援任何動作,此時
Actions
清單會是空白。
在整合服務中使用 Xero 連線
系統限制
Xero 連接器每秒可處理 5 筆交易,每個節點也是如此,且會節流任何超出此限制的交易。不過,Xero 連接器可處理的交易數量也取決於 Xero 執行個體施加的限制。詳情請參閱「Xero API 使用頻率限制」。根據預設,Integration Connectors 會為連線分配 2 個節點 (提高可用性)。
如要瞭解 Integration Connectors 適用的限制,請參閱「限制」一文。
動作
本節列出連接器支援的部分動作。如要瞭解如何設定動作,請參閱「動作範例」。
DownloadAttachment 動作
這項操作會下載附件。
DownloadAttachment 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
檔案名稱 | 字串 | 否 | 要下載的附件名稱。 |
資料表 | 字串 | 否 | 要從中下載附件的資料表名稱。 |
ObjectId | 字串 | 否 | 附件的 ObjectId。 |
DownloadAttachment 動作的輸出參數
如果下載成功,這項動作會傳回狀態 200 (OK)。
如要瞭解如何設定 DownloadAttachment
動作,請參閱動作範例。
UploadAttachment 動作
這項操作可讓你上傳附件。
UploadAttachment 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
檔案名稱 | 字串 | 否 | 要上傳的附件名稱。 |
ObjectId | 字串 | 否 | 附件的 ObjectId。 |
ContentType | 字串 | 否 | 附件的內容類型。 |
資料表 | 字串 | 否 | 附件應上傳至的資料表名稱。 |
內容 | 字串 | 否 | 附件內容 |
UploadAttachment 動作的輸出參數
如果物件上傳成功,這項動作會傳回狀態 200 (OK)。
如要瞭解如何設定 UploadAttachment
動作,請參閱動作範例。
ListAttachment 動作
這項動作可列出資料表的所有附件。
ListAttachment 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
ObjectId | 字串 | 否 | 附件的物件 ID。 |
資料表 | 字串 | 否 | 要列出附件的資料表名稱。 |
ListAttachment 動作的輸出參數
如果刪除作業成功,這項動作會傳回狀態 200 (OK)。
如要瞭解如何設定 ListAttachment
動作,請參閱動作範例。
SendInvoiceMail 動作
這個動作可讓你傳送電子郵件給開立發票者。
SendInvoiceMail 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
InvoiceId | 字串 | 否 | 要寄送郵件的月結單 ID。 |
SendInvoiceMail 動作的輸出參數
如果移動作業成功,這項動作會傳回狀態 200 (OK)。
如要瞭解如何設定 SendInvoiceMail
動作,請參閱動作範例。
UploadFile 動作
這項動作可讓你上傳檔案。
UploadFile 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
名稱 | 字串 | 否 | 要上傳的檔案名稱。 |
內容 | 字串 | 否 | 要上傳的檔案內容。 |
UploadFile 動作的輸出參數
如果物件上傳成功,這項動作會傳回狀態 200 (OK)。
如要瞭解如何設定 UploadFile
動作,請參閱動作範例。
動作範例
本節說明如何在這個連接器中執行部分動作。
範例 - 下載附件
這個範例會下載附件。
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
DownloadAttachment
動作,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "Filename": "Xero_Test.txt", "Table": "Contacts", "ObjectId": "6a92a3ab-87cf-4f2f-8beb-ecb4f8ae4d41" }
如果動作成功,DownloadAttachment
工作項目的 connectorOutputPayload
回應參數會包含類似下列內容的值:
[{ "Success": "True", "Content": "Test content" }]
範例 - 上傳附件
這個範例會上傳附件。
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
UploadAttachment
動作,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "Filename": "Xero_Test.txt", "ObjectId": "6a92a3ab-87cf-4f2f-8beb-ecb4f8ae4d41", "ContentType": "txt", "Table": "Contacts", "Content": "Test content upload attachment" }
如果動作成功,UploadAttachment
工作項目的 connectorOutputPayload
回應參數會包含類似下列內容的值:
[{ "Success": null, "AttachmentId": "5ba982a6-9294-45a7-bdda-5f134b0d69d5", "FileName": "Xero_Test.txt", "URL": "https://api.xero.com/api.xro/2.0/Contacts/6a92a3ab-87cf-4f2f-8bwb-fcb4f8ae4d41/Attachments/Xero_Test.txt", "MimeType": "text/plain", "ContentLength": "27", "IncludeOnline": null, "_": "" }, { "Success": null, "AttachmentId": null, "FileName": null, "URL": null, "MimeType": null, "ContentLength": null, "IncludeOnline": null, "_": null }]
範例 - 列出附件
這個範例會列出指定資料表的附件。
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
ListAttachment
動作,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "ObjectId": "6a92a3ab-87cf-4f2f-8beb-ecb4f8ae4d41", "Table": "Contacts" }
如果動作成功,ListAttachment
工作的 connectorOutputPayload
回應參數值會類似於下列內容:
[{ "AttachmentId": "5ba982a6-9294-45a7-bdda-5f134b0d69d5", "FileName": "Xero_Limit_Testing.txt", "URL": "https://api.xero.com/api.xro/2.0/Contacts/6a92a3ab-87cf-4f2f-8bwb-fcb4f8ae4d41/Attachments/Xero_Test.txt", "MimeType": "text/plain", "ContentLength": "27" }]
範例 - 傳送月結單電子郵件
這個範例會傳送指定月結單的電子郵件。
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
SendInvoiceMail
動作,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "InvoiceId": "016a64c7-be0b-45a2-acae-13057fdf1566" }
如果動作成功,SendInvoiceMail
工作的 connectorOutputPayload
回應參數值會類似於下列內容:
[{ "Success": "true" }]
範例 - 上傳檔案
這個範例會上傳檔案。
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
UploadFile
動作,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "Name": "Sample1.txt", "Content": "This is a sample file" }
如果動作成功,UploadFile
工作項目的 connectorOutputPayload
回應參數會包含類似下列內容的值:
[{ "Success": "true", "FileId": "09039c7b-35a2-473d-aa79-16fe00b8d460", "Name": "Sample1.txt", "FolderId": "36e5115d-a9b6-4c22-baf3-40a8b28ee71d", "MimeType": "text/plain", "Size": 26.0, "User_Id": "c1e33cc9-eb61-45cb-9e46-3ea4121cbdc6", "User_Name": "test_user_1@test.com", "User_FirstName": "John", "User_LastName": "Smith", "User_FullName": "John Smith", "Created": "2023-12-18 17:38:53.01", "Updated": "2023-12-18 17:38:53.01" }]
實體作業範例
本節說明如何使用這個連接器執行部分實體作業。
範例 - 列出所有記錄
這個範例會列出 Accounts
實體中的所有記錄。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Accounts
。 - 選取「
List
」作業,然後按一下「完成」。 - (選用) 在「連結器」工作的「工作輸入」部分,您可以指定篩選子句,篩選結果集。
例如:
City='Bangalore'
。您也可以使用邏輯運算子指定多個篩選條件。例如:City='Bangalore' and region='asia-south2'
。
範例 - 取得月結單
這個範例會從 Invoices
實體取得具有指定 ID 的月結單。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Invoices
。 - 選取「
Get
」作業,然後按一下「完成」。 - 在「連線器」工作的「工作輸入」部分,按一下「EntityId」,然後在「預設值」欄位中輸入
1|016a64c7-be0b-45a2-acae-13057fdf1566
。其中
1|016a64c7-be0b-45a2-acae-13057fdf1566
是Invoices
實體中的主鍵值。
範例 - 建立月結單
這個範例會在 Invoices
實體中建立月結單。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Invoices
。 - 選取「
Create
」作業,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "Type": "ACCPAY", "ContactName": "ContactName1", "LineItem_Description": "LineItemDescription" }
如果整合成功,連接器工作的
connectorOutputPayload
欄位會包含類似下列內容的值:{ "Id": "1|7b29efe9-dacd-47bb-85a6-0c0640ce25de" }
範例 - 更新記錄
這個範例會更新 AssetTypes
實體中的記錄。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取AssetTypes
。 - 選取「
Update
」作業,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "BookDepreciationSetting_DepreciationRate": 10.0 }
- 按一下「entityId」,然後在「Default Value」欄位中輸入
f8d43548-25b0-4cc3-8f59-d97106974fe8
。如果整合成功,連接器工作的
connectorOutputPayload
欄位會包含類似下列內容的值:{ "AssetTypeId": "f8d43548-25b0-4cc3-8f59-d97106974fe8" }
範例 - 刪除檔案
這個範例會從 Files
實體中刪除具有指定 ID 的檔案。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取Files
。 - 選取「
Delete
」作業,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下「entityId」,然後在「Default Value」(預設值) 欄位中輸入
421c82f0-38fb-4074-a679-63b04c0d8832
。
建立連線後,Apigee Integration 和 Application Integration 都會提供該連線。您可以在整合中透過「連接器」工作使用連線。
- 如要瞭解如何在 Apigee Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。
- 如要瞭解如何在 Application Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。