2024年5月26日 星期日

Python 如何使用 boxsdk 獲取 Box Accese Token

Python 如何使用 boxsdk 獲取 Box Accese Token

繼上一篇
CHG: Python 如何使用 Json 通過 JWT 請求獲取 Box Accese Token (不使用boxsdk)

詳細介紹了如何手動請求,這裡介紹 boxsdk 的使用方法



安裝 boxsdk[jwt]

參考這裡官方安裝的教學
box/box-python-sdk: Box SDK for Python (github.com)

他有分兩個版本記得後面要括號 jwt 會多裝一些基本套件

pip install "boxsdk[jwt]"

單純的執行就可以安裝好了



方法1 直接直接導入 json 檔案

參考自官方的這篇文章
JWT with SDKs - Box Developer Documentation

以及這裡的教學
BOX API(JWT認証)をPythonで使ったときの備忘録 #Python - Qiita

from boxsdk import JWTAuth
from boxsdk import Client

# JSON 檔案的路徑
CONFIG_FILE = 'config.json'

# 準備使用 BOX API
auth = JWTAuth.from_settings_file(CONFIG_FILE)
client = Client(auth)

# 獲取並顯示用戶資訊(API 測試)
user = client.user().get()
print(f'用戶名稱: {user.name} (ID: {user.id}), 電子郵件: {user.login}')

如此就能輕鬆導入了



方法2 手動導入 JWT物件

這裡是手動從 json 中抽取出數據,並導入 JWT 物件的方法

import json
from boxsdk import Client, JWTAuth

# 加載官方 JSON 檔案
with open('config.json') as json_file:
    config = json.load(json_file)

# 創建 JWTAuth 認證對象
auth = JWTAuth(
    client_id=config['boxAppSettings']['clientID'],
    client_secret=config['boxAppSettings']['clientSecret'],
    enterprise_id=config['enterpriseID'],
    jwt_key_id=config['boxAppSettings']['appAuth']['publicKeyID'],
    rsa_private_key_data=config['boxAppSettings']['appAuth']['privateKey'].replace('\\n', '\n'),
    rsa_private_key_passphrase=config['boxAppSettings']['appAuth']['passphrase']
)

# 獲取訪問令牌
access_token = auth.authenticate_instance()
print(f"訪問令牌: {access_token}")

# 使用訪問令牌創建 Box 客戶端
client = Client(auth)

# 認證並獲取當前用戶資訊
user = client.user().get()
print(f'用戶名稱: {user.name} (ID: {user.id}), 電子郵件: {user.login}')


本質上跟 方法1 跑的是一樣的代碼只是拉出來手動做而已。


沒有留言:

張貼留言