Xero

這個連接器可提供 Xero 後端的 SQL 存取權。

事前準備

使用 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 (連接器 API)

      如要瞭解如何啟用服務,請參閱「啟用服務」。

    如果先前未為專案啟用這些服務或權限,系統會在設定連接器時提示您啟用。

Xero 設定

設定 Xero 時,必須執行下列工作:

設定 Xero 帳戶和 Xero 示範公司

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

產生 OAuth 2.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 和用戶端密鑰」。

設定結構定義詳細資料

您可以根據模組選取結構定義。可用的結構定義為 ACCOUNTING、ASSETS、PAYROLLAUS、FILES 和 PROJECTS。我們有五個不同的模組,因此您必須為每個模組建立不同的連線。

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

設定授權詳細資料

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

設定連接器

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

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

    前往「連線」頁面

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

      支援的連接器地區包括:

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

    2. 點按「Next」
  4. 在「連線詳細資料」部分中,完成下列操作:
    1. 連接器:從可用連接器的下拉式清單中選取 Xero
    2. 連接器版本:從可用版本的下拉式清單中選取連接器版本。
    3. 在「Connection Name」欄位中,輸入連線例項的名稱。

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

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

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

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

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

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

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

    3. 點按「Next」
  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 清單會是空白。

  • 作業: 作業是指您可對實體執行的活動。您可以對實體執行下列任一操作:

    從可用清單中選取實體後,系統會產生可用於該實體的作業清單。如需作業的詳細說明,請參閱連接器工作中的實體作業。不過,如果連接器不支援任何實體作業,則 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 動作,然後按一下「Done」
  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 動作,然後按一下「Done」
  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 動作,然後按一下「Done」
  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 動作,然後按一下「Done」
  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 動作,然後按一下「Done」
  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 作業,然後按一下「Done」
  4. 您也可以在 Connector 工作中的「Task Input」部分,指定篩選子句來篩選結果集。例如:City='Bangalore'。您也可以使用邏輯運算子指定多個篩選條件。例如:City='Bangalore' and region='asia-south2'

示例:取得月結單

這個範例會從 Invoices 實體取得指定 ID 的應付憑據。

  1. Configure connector task 對話方塊中,按一下 Entities
  2. Entity 清單中選取 Invoices
  3. 選取 Get 運算,然後按一下「Done」
  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 運算,然後按一下「Done」
  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 運算,然後按一下「Done」
  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 運算,然後按一下「Done」
  4. 在「連接器」任務的「Task Input」部分,點選「entityId」,然後在「Default Value」欄位中輸入 421c82f0-38fb-4074-a679-63b04c0d8832

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

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

向 Google Cloud 社群尋求協助

如有任何問題,歡迎在 Cloud 論壇中發問並討論這個連接器。

後續步驟