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 示範公司

  1. 前往 Xero 帳戶註冊免費帳戶。
  2. 前往 Xero 示範公司,啟用 Xero 示範公司。

產生 OAuth2.0 用戶端驗證詳細資料

  1. 登入 Xero 開發人員帳戶
  2. 按一下「註冊」並按照提示操作。如果已有帳戶,請使用憑證登入。
  3. 登入後,系統會將您導向 Xero 開發人員資訊主頁。

  4. 前往開發人員資訊主頁的「我的應用程式」部分,然後前往 Xero 開發人員入口網站
  5. 按一下「New App」(新應用程式) 或「Create a new app」(建立新應用程式),建立新應用程式。
  6. 輸入應用程式的必要詳細資料,例如應用程式名稱、說明、公司網址、隱私權政策網址、使用條款網址和回呼網址。
  7. 請務必選取適當的應用程式類型,以及與 Xero 示範公司整合時所需的權限。
  8. 建立應用程式後,您會取得 OAuth 憑證,包括用戶端 ID 和用戶端密鑰。

  9. 將用戶端 ID 和用戶端密鑰儲存在安全位置,以供日後使用。
  10. 建立整合時,請為每個結構定義仔細選取必要範圍,確保應用程式具備適當權限,可存取及使用必要公用程式。

    如要瞭解如何驗證及擷取用戶端 ID 和用戶端密鑰,請參閱「擷取用戶端 ID 和用戶端密鑰」。

設定結構定義詳細資料

您可以根據模組選取結構定義。可用的結構定義包括會計、資產、澳洲薪資、檔案和專案。由於我們有五個不同的模組,因此您必須為每個模組建立不同的連線。

如要瞭解建立連線時可以指定的範圍,請參閱「範圍」一文。

設定授權詳細資料

如要瞭解如何設定授權網址,請參閱「 設定授權網址」。

設定連接器

連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連線,請按照下列步驟操作:

  1. Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。

    前往「連線」頁面

  2. 按一下「+ 建立新連線」,開啟「建立連線」頁面。
  3. 在「位置」部分中,選擇連線位置。
    1. 區域:從下拉式清單中選取位置。

      連接器支援的地區包括:

      如需所有支援的地區清單,請參閱「位置」一文。

    2. 點選「下一步」
  4. 在「連線詳細資料」部分,完成下列步驟:
    1. 連接器:從可用連接器的下拉式清單中選取「Xero」
    2. 連接器版本:從可用版本的下拉式清單中選取連接器版本。
    3. 在「連線名稱」欄位中,輸入連線執行個體的名稱。

      連線名稱必須符合下列條件:

      • 連線名稱可使用英文字母、數字或連字號。
      • 字母必須為小寫。
      • 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
      • 連結名稱不得超過 49 個字元。
    4. 視需要輸入連線執行個體的「Description」(說明)
    5. 或者,可啟用 Cloud Logging,然後選取記錄層級。記錄層級預設為 Error
    6. 服務帳戶:選取具備必要角色的服務帳戶。
    7. 視需要設定「連線節點設定」

      • 節點數量下限:輸入連線節點數量下限。
      • 節點數量上限:輸入連線節點數量上限。

      節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連線器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。

    8. 結構定義:您要以資料庫結構定義存取的 Xero API。
    9. 租戶:設定要連結的 Xero 機構。可以是名稱或房客 ID。
    10. 詳細等級:連線的詳細等級,範圍為 1 到 5。詳細程度越高,記錄的通訊詳細資料就越多 (要求、回應和 SSL 憑證)。
    11. (選用) 按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
    12. 點選「下一步」
  5. 在「Authentication」(驗證) 部分,輸入驗證詳細資料。
    1. 選取「驗證類型」並輸入相關詳細資料。

      Xero 連線支援下列驗證類型:

      • OAuth 2.0 用戶端憑證
      • OAuth 2.0 授權碼授權
    2. 如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。

    3. 點選「下一步」
  6. 檢查:檢查連線和驗證詳細資料。
  7. 點選「建立」

設定驗證機制

根據要使用的驗證方式輸入詳細資料。

  • 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 動作,請參閱動作範例

動作範例

本節說明如何在這個連接器中執行部分動作。

範例 - 下載附件

這個範例會下載附件。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 DownloadAttachment 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Filename": "Xero_Test.txt",
    "Table": "Contacts",
    "ObjectId": "6a92a3ab-87cf-4f2f-8beb-ecb4f8ae4d41"
    }
  4. 如果動作成功,DownloadAttachment 工作項目的 connectorOutputPayload 回應參數會包含類似下列內容的值:

    [{
    "Success": "True",
    "Content": "Test content"
    }]

範例 - 上傳附件

這個範例會上傳附件。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 UploadAttachment 動作,然後按一下「完成」
  3. 在「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"
    }
  4. 如果動作成功,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
    }]

範例 - 列出附件

這個範例會列出指定資料表的附件。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 ListAttachment 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "ObjectId": "6a92a3ab-87cf-4f2f-8beb-ecb4f8ae4d41",
    "Table": "Contacts"
    }
  4. 如果動作成功,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"
    }]

範例 - 傳送月結單電子郵件

這個範例會傳送指定月結單的電子郵件。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 SendInvoiceMail 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "InvoiceId": "016a64c7-be0b-45a2-acae-13057fdf1566"
    }
  4. 如果動作成功,SendInvoiceMail 工作的 connectorOutputPayload 回應參數值會類似於下列內容:

    [{
    "Success": "true"
    }]

範例 - 上傳檔案

這個範例會上傳檔案。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 UploadFile 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Name": "Sample1.txt",
    "Content": "This is a sample file"
    }
  4. 如果動作成功,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 實體中的所有記錄。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 Accounts
  3. 選取「List」作業,然後按一下「完成」
  4. (選用) 在「連結器」工作的「工作輸入」部分,您可以指定篩選子句,篩選結果集。 例如:City='Bangalore'。您也可以使用邏輯運算子指定多個篩選條件。例如:City='Bangalore' and region='asia-south2'

範例 - 取得月結單

這個範例會從 Invoices 實體取得具有指定 ID 的月結單。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 Invoices
  3. 選取「Get」作業,然後按一下「完成」
  4. 在「連線器」工作的「工作輸入」部分,按一下「EntityId」,然後在「預設值」欄位中輸入 1|016a64c7-be0b-45a2-acae-13057fdf1566

    其中 1|016a64c7-be0b-45a2-acae-13057fdf1566Invoices 實體中的主鍵值。

範例 - 建立月結單

這個範例會在 Invoices 實體中建立月結單。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 Invoices
  3. 選取「Create」作業,然後按一下「完成」
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Type": "ACCPAY",
    "ContactName": "ContactName1",
    "LineItem_Description": "LineItemDescription"
    }

    如果整合成功,連接器工作的 connectorOutputPayload 欄位會包含類似下列內容的值:

    {
    "Id": "1|7b29efe9-dacd-47bb-85a6-0c0640ce25de"
    }

範例 - 更新記錄

這個範例會更新 AssetTypes 實體中的記錄。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 AssetTypes
  3. 選取「Update」作業,然後按一下「完成」
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "BookDepreciationSetting_DepreciationRate": 10.0
    }
  5. 按一下「entityId」,然後在「Default Value」欄位中輸入 f8d43548-25b0-4cc3-8f59-d97106974fe8

    如果整合成功,連接器工作的 connectorOutputPayload 欄位會包含類似下列內容的值:

    {
    "AssetTypeId": "f8d43548-25b0-4cc3-8f59-d97106974fe8"
    }

範例 - 刪除檔案

這個範例會從 Files 實體中刪除具有指定 ID 的檔案。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 Files
  3. 選取「Delete」作業,然後按一下「完成」
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下「entityId」,然後在「Default Value」(預設值) 欄位中輸入 421c82f0-38fb-4074-a679-63b04c0d8832

建立連線後,Apigee Integration 和 Application Integration 都會提供該連線。您可以在整合中透過「連接器」工作使用連線。

  • 如要瞭解如何在 Apigee Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。
  • 如要瞭解如何在 Application Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。

向 Google Cloud 社群尋求協助

如要發布問題及討論這個連接器,請前往 Cloud 論壇的 Google Cloud 社群。

後續步驟