“`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 的其他功能,可以創建更強大的應用程式。

### 圖片示例

以下是一些可能被檢測的圖片示例:

– **色情照片**
![色情檢測SafeSearch](https://badgameshow.com/steven/wp-content/uploads/2020/10/wp_editor_md_1ef75ac396fec1aeaa3c1916a75f9656.jpg)
![色情檢測SafeSearch](https://badgameshow.com/steven/wp-content/uploads/2020/10/wp_editor_md_4bcde1fc6dae84cb610fb80121719f44.jpg)

– **血腥照片**
![血腥圖片示例](https://badgameshow.com/steven/wp-content/uploads/2020/10/wp_editor_md_638bc825fbe8cd8fbc530cb7af366c9f.jpg)
![血腥圖片示例](https://badgameshow.com/steven/wp-content/uploads/2020/10/wp_editor_md_b7d929bdfb1a803b4f743b21deb3db3c.jpg)

## Q&A(常見問題解答)

**Q1: 如何獲取 Google API 金鑰?**
A1: 您需要登入 Google Cloud Platform,並在 API & Services 中啟用 Vision API,然後創建憑證來獲取金鑰。

**Q2: 可以檢測哪些類型的內容?**
A2: Google SafeSearch API 可以檢測色情、血腥、成人內容等,並返回相應的檢測結果。

**Q3: 如何處理多張圖片的檢測?**
A3: 您可以將多張圖片的 base64 編碼結果保存到一個數組中,然後將它們一起發送到 API 進行檢測。

“`

Categorized in:

Tagged in:

,