> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 隱私權和權限概觀

> 使用 XBOX 隱私權服務和 XSAPI 執行聊天、視訊和跨網路遊玩的權限檢查，並遵守靜音和避開清單偏好設定。

使用本主題來檢查和解決遊戲中的隱私權和權限問題。

XBOX 隱私權服務會尊重使用者的偏好設定並提供他們想要的社交體驗，藉此保護使用者。

隱私權服務支援使用 XBOX 服務 API (XSAPI) 和 XBOX 服務 REST 端點進行權限檢查、將使用者設為靜音，以及避開使用者。

如需詳細資訊，請參閱 [XSAPI 概觀](https://docs.xbox.com/zh-TW/services/xbox-services/fundamentals/xbox-services-api/live-introduction-to-xbox-live-apis.md)。

> [!NOTE]
>
> 您無法使用隱私權服務擷取或設定使用者的隱私權設定。

## 權限檢查

權限檢查是隱私權服務所提供的主要功能。
這些檢查的運作方式是判斷使用者是否可以與另一位使用者或一組使用者執行某個動作。

例如，如果您想要知道使用者是否可以與目標通訊，隱私權服務會根據一系列相關準則 (包括下列案例) 做出回答。

* 兩位使用者的設定是否都允許此案例？
* 使用者之間的關係為何？
* 動作者是否在目標的避開清單中？

XBOX 隱私權服務支援跨網路通訊權限檢查。XBOX 使用者可以決定是否要與其他網路上的好友 (**crossNetworkFriends**) 或這些網路上的所有人 (**crossNetworkUsers**) 進行通訊。

隱私權服務可讓遊戲透過下列權限檢查：CommunicateUsingText、CommunicateUsingVideo、CommunicateUsingVoice，確認 **crossNetworkUsers** 或 **crossNetworkFriends** 是否可以與使用者通訊。

> [!NOTE]
>
> 跨網路通訊是隱私權服務權限唯一支援的跨網路案例。

如需詳細資訊，請參閱 [XblPrivacyCheckPermissionAsync](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacycheckpermissionasync.md) 和 [`GET (/users/{requestorId}/permission/validate)`](https://docs.xbox.com/zh-TW/reference/live/rest/uri/privacy/uri-privacyusersrequestoridpermissionvalidateget)。

## 何時檢查權限

如果您的遊戲使用自己的服務，請在工作階段開始時，以及有新玩家加入工作階段時檢查權限。對於工作階段以外由使用者起始的動作，請在顯示其他玩家的資料之前，以及在執行動作之前檢查權限。

如果權限檢查失敗 (例如因為無法連線到 XBOX 服務)，請封鎖所要求的動作，並以適當的方式處理失敗。請將失敗的檢查視同傳回不允許結果的檢查。

若要檢查其他網路上玩家的權限，請將 `XblAnonymousUserType::CrossNetworkUser` 或 `XblAnonymousUserType::CrossNetworkFriend` 傳遞給 [XblPrivacyCheckPermissionForAnonymousUserAsync](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacycheckpermissionforanonymoususerasync.md) 或 [XblPrivacyBatchCheckPermissionAsync](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacybatchcheckpermissionasync.md)。如果您的遊戲提供 XBOX 網路玩家與其他網路上玩家之間的通訊，請讓玩家可以在工作階段期間將來自其他網路的任何玩家設為靜音。

在涉及大量玩家的案例中 (例如全域聊天或非常大型的工作階段和活動)，不建議使用使用者對使用者的權限檢查。在這些案例中，請定期 (例如每小時) 檢查通訊權限和每位玩家的封鎖清單。

如果您的遊戲使用 Game Chat 2，Game Chat 2 會對其所承載的語音和文字聊天強制執行權限和隱私權限制。如需詳細資訊，請參閱[使用 Game Chat 2 C++ API](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/chat/game-chat2/using-game-chat-2.md)。

如需完整的需求和測試案例，請參閱 [XR-015：管理玩家通訊](https://docs.xbox.com/zh-TW/publishing/certification/xr/xr-015.md)和 [XR-045：XBOX 網路與帳戶權限](https://docs.xbox.com/zh-TW/publishing/certification/xr/xr-045.md)。

## 靜音清單

您的遊戲可以使用隱私權服務擷取使用者的靜音清單。靜音清單會指定最多 250 位清單擁有者不想透過語音通訊聽到其聲音的使用者。

> [!NOTE]
>
> 靜音清單會控制語音通訊，但不會影響文字通訊。

根據預設，所有相關的權限檢查都會納入靜音清單。
這表示除了檢查其他權限之外，您不需要針對靜音清單執行額外的檢查。

例如，如果您想要知道某位使用者是否可以與另一位使用者進行語音聊天，隱私權服務會在權限檢查中檢查使用者的靜音清單。您的程式碼不需要另外檢查靜音清單。不過，您可能會發現在某些案例中擷取靜音清單很有幫助。

> [!NOTE]
>
> 遊戲不得將人員新增至使用者的靜音清單。

如需詳細資訊，請參閱 [XblPrivacyGetMuteListAsync](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacygetmutelistasync.md) 和 [`GET (/users/{ownerId}/people/mute)`](https://docs.xbox.com/zh-TW/reference/live/rest/uri/privacy/uri-privacyusersowneridpeoplemuteget)。

若要在靜音清單變更時收到通知而不需輪詢，請使用 [XblPrivacyAddMuteListChangedHandler](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacyaddmutelistchangedhandler.md) 註冊處理常式。如需詳細資訊，請參閱[靜音和避開清單的變更通知](#change-notifications-for-the-mute-and-avoid-lists)。

## 避開清單

您的遊戲也可以使用隱私權服務擷取使用者的避開清單。

避開清單最多可保存 1,000 位擁有者已封鎖的 XBOX 使用者，以防止任何形式的通訊，例如語音、文字、遊戲邀請或俱樂部邀請。

擷取避開清單可能很有價值，但檢查避開清單也是所有相關權限檢查的一部分。

例如，如果您想要知道某位使用者是否可以傳送文字訊息給另一位使用者，隱私權服務會在權限檢查中參考避開清單。您的程式碼不需要另外檢查避開清單。

> [!NOTE]
>
> 遊戲不得將人員新增至使用者的避開清單。

如需詳細資訊，請參閱 [XblPrivacyGetAvoidListAsync](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacygetavoidlistasync.md) 和 [`GET (/users/{ownerId}/people/avoid)`](https://docs.xbox.com/zh-TW/reference/live/rest/uri/privacy/uri-privacyusersxuidpeopleavoidget)。

若要在避開清單變更時收到通知，請使用 [XblPrivacyAddBlockListChangedHandler](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacyaddblocklistchangedhandler.md) 註冊處理常式。變更通知 API 將避開清單稱為封鎖清單 (block list)。

## 靜音和避開清單的變更通知

變更通知處理常式只會回報清單的變更，而不是完整清單。每個通知都有 `XblPrivacyListChangeType::Added` 或 `XblPrivacyListChangeType::Removed` 的變更類型，以及已變更之 XBOX 使用者識別碼 (XUID) 的陣列。若要取得完整清單，請呼叫 `XblPrivacyGetMuteListAsync` 和 `XblPrivacyGetAvoidListAsync`。

使用處理常式時，請謹記下列事項：

* XUID 陣列和其他事件引數只在回呼期間有效。請複製您需要保留的任何值。
* 如果新增函式無法註冊處理常式，會傳回 0。請儲存傳回的權杖，以便稍後移除處理常式。
* 通知是透過即時活動 (RTA) 傳遞。請使用 [XblRealTimeActivityAddResyncHandler](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/real_time_activity_c/functions/xblrealtimeactivityaddresynchandler.md) 註冊處理常式。重新同步通知表示資料可能已遺失，因此當您收到此通知時，請再次取得完整清單。
* 在關閉 `XblContextHandle` 之前，請呼叫 [XblPrivacyRemoveMuteListChangedHandler](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacyremovemutelistchangedhandler.md) 或 [XblPrivacyRemoveBlockListChangedHandler](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/privacy_c/functions/xblprivacyremoveblocklistchangedhandler.md)，移除您註冊的每個處理常式。

變更通知不會取代權限檢查。請繼續依照[何時檢查權限](#when-to-check-permissions)中的說明檢查權限。

## 另請參閱

[XBOX 服務概觀](https://docs.xbox.com/zh-TW/services/xbox-services/fundamentals/live-xbl-overview.md)
[開始使用 XBOX 服務 API](https://docs.xbox.com/zh-TW/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis.md)
[XR-015：管理玩家通訊](https://docs.xbox.com/zh-TW/publishing/certification/xr/xr-015.md)
[XR-045：XBOX 網路與帳戶權限](https://docs.xbox.com/zh-TW/publishing/certification/xr/xr-045.md)


## Related topics

- [隱私權和權限](https://docs.xbox.com/zh-TW/services/xbox-services/fundamentals/identity/privacy/live-privacy-permissions-nav.md)
- [PlayFab Party 的 XBOX Live 協助程式庫](https://docs.xbox.com/zh-TW/services/playfab/multiplayer/networking/party-xbox-live-guide.md)
- [隱私權](https://docs.xbox.com/zh-TW/services/xbox-services/fundamentals/identity/privacy/index.md)
- [XBOX 服務使用者權限概觀](https://docs.xbox.com/zh-TW/services/xbox-services/fundamentals/identity/privileges/live-user-privileges-overview.md)
- [使用者身分識別概觀](https://docs.xbox.com/zh-TW/services/xbox-services/fundamentals/identity/xs-identity-overview.md)
