NetSuite 選擇使用 OAuth 1.0 作為其 Token-Based Authentication(TBA)機制的基礎,讓開發者能夠在應用程序中以授權方式存取 NetSuite 的資料,而無需依賴使用者的帳號和密碼。這對於 API 整合和第三方應用開發尤為重要,因為它減少了機敏資訊的暴露風險。並且透過使用者角色設定(Role),達到權限、可視資料及 Subsidiary 區分等特性。若要做系統整合,NetSuite OAuth 1.0 與 REST Web Service 一起使用是不錯的方式。
以下分享系統設定、文件,與 Postman 測試的方式。
Table of Contents
NetSuite OAuth 1.0 的實作步驟
建立 Integration 資料
#1 Path: Setup → Integration → Manage Integration → New

#2 設定 Integration 的 Name

#3 設定 Authentication
– Token-based Authentication 打勾
– TBA: Authorization Flow 不勾

#4 存擋後,會出現 Consumer Key 以及 Consumer Secret

#5 Consumer Key 以及 Consumer Secret 只會出現這麼一次!當使用者重新整理此網頁,就不會再出現。建議將此資訊抄錄在其他安全的地方
建立 Role 與指定給使用者
#1 在設定 Access Token 前,先設定適合的 Role(角色)供整合使用,並且指定 Role 給適合的使用者(通常是系統的 Administrator 的帳號)。此處不建議直接使用 Administrator 的角色權限
#2 根據不同的使用需求建立個別的 Role,如: Celigo Integration、3PL Integration、 BPM Integration…等。依 BPM Integration 來說,可能會使用到的有 Customer、Employee 的主檔…等,只要加入需要的權限給 Role 即可
#3 建立好也指定給適合的使用者後再開始下一步
建立 Role,可以參考:
建立 Access Token
#1 Path: Users/Roles → Access Tokens or Global Search → Access Tokens

#2 點選 New Access Token
#3 選擇我們先前建立的 Integration、依照不同情境選擇使用者及角色

#4 存擋後,會出 Token ID & Token Secret。建議將此資訊抄錄在其他安全的地方

若完成以上就可以開始測試 OAuth 1.0 Token。
補充:若使用 Administrator 角色權限執行 Integration
先前有提到,本篇文章不建議使用 Administrator 角色權限作為 Integration 的角色。Administrator 角色獲得 Access Token 和 Token Secret 的方式與其他角色稍有不同,若仍有需要,可以參考以下方法。
#1 Path: 主頁 → Setting → Manage Access Tokens

#2 New My Access Token → 填入先前建立好的 integration, 會看到 Token Name 後面會自動帶入 Administrator

#3 存擋後,會出 Token ID & Token Secret。建議將此資訊抄錄在其他安全的地方
測試 OAuth 1.0 Token
使用上述步驟建立的 Consumer Key/Secret 與 Token ID/Secret 測試是否可以正常使用。首先我們到 NetSuite 的網站來下載 Postman 的 Collection。
NetSuite REST API 文件可以參考:
#1 把下載出來的檔案 Import 到 Postman 後,可以看到 NetSuite 提供的 Collection

#2 選擇選擇 “NetSuite REST API Tutorial” → Authorization,填入以下資訊

| 參數名稱/設定 | 內容 |
| Auth Type | OAuth 1.0 |
| Add Authorization data to | Request Headers |
| Signature Method | HMAC-SHA256 |
| Consumer Key | NetSuite Consumer Key |
| Consumer Secret | NetSuite Consumer Secret |
| Access Token | NetSuite Token ID |
| Token Secret | NetSuite Token Secret |
| Realm | NetSuite Account ID** |
備註: Account ID** 可以再 Path: Setup → Company → Company Information 找到。注意 Realm 的大小寫需與 Account ID 一致,如果是 Sandbox Account,需要有大寫的 “_SB”。

#3 設定結果如下圖

#4 到 Collection → NetSuite REST API Tutorial → 0 Test → Example 0.1: Test Request

#5 Example 0.1: Test Request 的 Authorization → Auth Type → Inherit auth from parent

#6 URL 請參考 Setup → Company → Company Information 底下的 Company URLs → SuiteTalk (SOAP and REST web services)

#7 注意在 URL 的後面需要加上 “/*”, 並且將 HTTP method 設定為 Options

#8 按下發送, 應可以看到 200 OK 的字樣, 表示 HTTP Request 已經成功從 NetSuite 獲得資料,恭喜成功設定 OAuth 1.0!
#9 常見的 HTTP Status Code 可以參考 NetSuite 網站:
除錯
我們可以到剛剛建立的 Integration → Execution Log → REST Web Service 查看。

在這裡可以下載 Request 以及 Response 進行更深入的檢查。
結語
本篇文章我們使用的 NetSuite OAuth 1.0、Postman 來進行 API 的測試,可以看到我們成功的建立了一個 Integration 跟 如何 debug。 希望這篇文章對你有幫助!之後本站會介紹如何使用 OAuth 2.0!
還想了解更多:
專注於系統客製化、系統維運與系統優化領域的團隊。致力於讓使用者系統變好用!
NetSuite Record Export 已在Google Chrome Web Store上架,歡迎任何反饋。
合作: info@inzaghi-corp.com
