“`markdown
 ## Swift 程式教學:使用 Google SafeSearch API 進行安全搜尋與色情檢測
在這篇文章中,我們將學習如何使用 Google 的 SafeSearch API 進行圖像安全性檢測,包括色情、血腥等內容的識別。隨著技術的進步,本文將更新為 **2025 最新語法與最佳實踐**,幫助開發者更輕鬆地整合這個功能。
### 安裝與設定
請確保您已經擁有 Google Cloud Platform 的帳戶,並啟用 Vision API。接下來,您需要獲取 API 金鑰,並將其替換為程式碼中的 `yourKey`。
### 原生 HTTP POST 請求
我們將使用 Swift 的 `URLSession` 來發送 HTTP POST 請求。以下是進行安全搜尋的程式碼範例:
“`swift
 import UIKit
let semaphore = DispatchSemaphore(value: 0)
// 載入圖片並轉換為 JPEG 格式的 NSData
 guard let image = UIImage(named: “test2”),
 let testImageData = image.jpegData(compressionQuality: 0.5) else {
 print(“無法載入圖片”)
 return
 }
let base64ImageString = testImageData.base64EncodedString(options: .endLineWithCarriageReturn)
let parameters: [String: Any] = [
 “requests”: [
 [
 “image”: [“content”: base64ImageString],
 “features”: [[“type”: “SAFE_SEARCH_DETECTION”]],
 “imageContext”: [“languageHints”: [“zh”, “en”]]
]
]
]
do {
 let postData = try JSONSerialization.data(withJSONObject: parameters)
 var request = URLRequest(url: URL(string: “https://vision.googleapis.com/v1/images:annotate?key=yourKey”)!, timeoutInterval: Double.infinity)
 request.addValue(“application/json”, forHTTPHeaderField: “Content-Type”)
 request.httpMethod = “POST”
 request.httpBody = postData
 let task = URLSession.shared.dataTask(with: request) { data, response, error in
 guard let data = data else {
 print(String(describing: error))
 return
 }
 // 處理 API 回應
 if let responseString = String(data: data, encoding: .utf8) {
 print(responseString)
 }
 semaphore.signal()
 }
 task.resume()
 semaphore.wait()
 } catch {
 print(“JSONSerialization 錯誤:\(error)”)
 }
 “`
### 錯誤排除
1. **無法載入圖片**:請檢查圖片名稱是否正確。
 2. **API 回應錯誤**:確保您的 API 金鑰是有效的,並且已經啟用 Vision API。
 3. **JSON 解析錯誤**:請檢查 `parameters` 的格式是否正確。
### 延伸應用
您可以擴展這個程式碼來處理多張圖片,或是更改檢測類型(例如:面部偵測、物件識別等)。利用 Google Vision API 的其他功能,可以創建更強大的應用程式。
### 圖片示例
以下是一些可能被檢測的圖片示例:
– **色情照片**
 
 
– **血腥照片**
 
 
—
## Q&A(常見問題解答)
**Q1: 如何獲取 Google API 金鑰?**
 A1: 您需要登入 Google Cloud Platform,並在 API & Services 中啟用 Vision API,然後創建憑證來獲取金鑰。
**Q2: 可以檢測哪些類型的內容?**
 A2: Google SafeSearch API 可以檢測色情、血腥、成人內容等,並返回相應的檢測結果。
**Q3: 如何處理多張圖片的檢測?**
 A3: 您可以將多張圖片的 base64 編碼結果保存到一個數組中,然後將它們一起發送到 API 進行檢測。
“`
 —
