共用方式為


傳送要求至 Microsoft Store

從 Windows 10 版本 1607 開始,Windows SDK 會在 Windows.Services.Store 命名空間中提供 Store 相關作業的 API (例如應用程式內購買)。 不過,雖然支援 Store 的服務在 OS 版本之間不斷更新、擴充和改善,但新的 API 通常只會在主要 OS 發行版本期間新增至 Windows SDK。

我們會提供 SendRequestAsync 方法作為靈活的方式,在發行新版本的 Windows SDK 之前,可在通用 Windows 平台 (UWP) 應用程式使用新 Store 作業。 您可以使用此方法,將要求傳送至 Store,以在最新發行版本 Windows SDK 中進行尚未提供的對應 API 新作業。

注意

SendRequestAsync 方法僅適用於以 Windows 10 版本 1607 或更新版本為目標的應用程式。 只有 Windows 10 版本 1607 之後的版本才支援此方法所支援的某些要求。

SendRequestAsync 是 StoreRequestHelper 類別的靜態方法。 若要呼叫此方法,您必須將下列資訊傳遞至方法:

  • StoreContext 物件,提供您要執行作業的使用者相關資訊。 如需此物件的詳細資訊,請參閱開始使用 StoreContext 類別
  • 可識別您想要傳送至 Store 的要求整數。
  • 如果要求支援任何引數,您也可以傳遞 JSON 格式的字串,其中包含要隨著要求一起傳遞的引數。

下列範例將示範如何呼叫這個方法。 此範例需要將陳述式用於 Windows.Services.Store 和 System.Threading.Tasks 命名空間。

public async Task<bool> AddUserToFlightGroup()
{
    StoreSendRequestResult result = await StoreRequestHelper.SendRequestAsync(
        StoreContext.GetDefault(), 8,
        "{ \"type\": \"AddToFlightGroup\", \"parameters\": { \"flightGroupId\": \"your group ID\" } }");

    if (result.ExtendedError == null)
    {
        return true;
    }

    return false;
}

如需目前可透過 SendRequestAsync 方法取得的要求相關資訊,請參閱下列各節。 新增對新要求的支援時,我們會更新本文章。

要求應用程式內評等和評論

您可以從應用程式以程式設計方式啟動對話方塊,其會要求客戶將要求整數 16 傳遞給 SendRequestAsync 方法,以評分您的應用程式並提交檢閱。 如需詳細資訊,請參閱在您的應用程式中顯示評等和評論對話方塊

發行小眾測試版群組案例的要求

重要

本節所述的所有發行小眾測試版群組要求目前不適用於大部分的開發人員帳戶。 除非您的開發人員帳戶是由 Microsoft 特別布建,否則這些要求將會失敗。

SendRequestAsync 方法支援一組發行小眾測試版群組案例的要求,例如將使用者或裝置新增至發行小眾測試版群組。 若要提交這些要求,請將值 7 或 8 傳遞至 requestKind 參數,並將 JSON 格式字串傳遞至 parametersAsJson 參數,來指出您想要提交的要求以及任何相關引數。 方法也支援使用 BigID 對應 PFN 的要求(來自顯示類別目錄的 ProductID)。 若要提交此要求,請將值 9 傳遞至 requestKind 參數。 這些 requestKind 值在下列方面有所不同。

要求種類值 描述
7 要求會在目前裝置的內容中執行。 此值只能在 Windows 10 版本 1703 或更新版本上使用。
8 要求會在目前登入 Store 的使用者內容中執行。 此值可在 Windows 10 版本 1607 或更新版本上使用。
9 要求會透過 HTTP 要求將 PackageFamilyName 的 BigID (ProductId) 傳回給具有匿名驗證的顯示類別目錄。

目前已實作下列發行小眾測試版群組要求。

擷取排名最高的發行小眾測試版群組遠端變數

重要

此要求目前不適用於大多數開發人員帳戶。 除非您的開發人員帳戶是由 Microsoft 特別布建,否則此要求將會失敗。

此要求會擷取目前使用者或裝置排名最高的發行小眾測試版群組遠端變數。 若要傳送此要求,請將下列資訊傳遞至 SendRequestAsync 方法的 requestKind 和 parametersAsJson 參數

參數 描述
requestKind 指定 7 可傳回裝置排名最高的發行小眾測試版群組,或指定 8 傳回目前使用者和裝置排名最高的發行小眾測試版群組。 我們建議針對 requestKind 參數使用值 8,因為此值會針對目前使用者和裝置的成員資格傳回排名最高的發行小眾測試版群組。
parametersAsJson 傳遞 JSON 格式的字串,其中包含下列範例中顯示的資料。

下列範例顯示要傳遞至 parametersAsJson 的 JSON 資料格式。 type 欄位必須指派給字串 GetRemoteVariables。 將 projectId 欄位指派給您在合作夥伴中心中定義遠端變數的專案識別碼。

{ 
    "type": "GetRemoteVariables", 
    "parameters": "{ \"projectId\": \"your project ID\" }" 
}

提交此要求之後,StoreSendRequestResultResponse 屬性會傳回包含具有下列欄位的 JSON 格式字串。

欄位 描述
anonymous 布林值,其中 true 表示要求中沒有使用者或裝置識別,false 表示要求中有使用者或裝置識別。
name 字串,包含裝置或使用者所屬排名最高的發行小眾測試版群組名稱。
settings 索引鍵/值組的字典,其中包含開發人員為發行小眾測試版群組設定的遠端變數名稱和值。

下列範例示範此要求的傳回值。

{ 
  "anonymous": false, 
  "name": "Insider Slow",
  "settings":
  {
      "Audience": "Slow"
      ...
  }
}

將目前的裝置或使用者新增至發行小眾測試版群組

重要

此要求目前不適用於大多數開發人員帳戶。 除非您的開發人員帳戶是由 Microsoft 特別布建,否則此要求將會失敗。

若要傳送此要求,請將下列資訊傳遞至 SendRequestAsync 方法的 requestKind 和 parametersAsJson 參數

參數 描述
requestKind 指定 7 將裝置新增至發行小眾測試版群組,或指定 8 將目前登入 Store 的使用者新增至發行小眾測試版群組。
parametersAsJson 傳遞 JSON 格式的字串,其中包含下列範例中顯示的資料。

下列範例顯示要傳遞至 parametersAsJson 的 JSON 資料格式。 type 欄位必須指派給字串 AddToFlightGroup。 將 flightGroupId 欄位指派給您要新增裝置或使用者之發行小眾測試版群組的識別碼。

{ 
    "type": "AddToFlightGroup", 
    "parameters": "{ \"flightGroupId\": \"your group ID\" }" 
}

如果要求發生錯誤, StoreSendRequestResult 傳回值的 HttpStatusCode 屬性會包含回應碼。

從發行小眾測試版群組中移除目前的裝置或使用者

重要

此要求目前不適用於大多數開發人員帳戶。 除非您的開發人員帳戶是由 Microsoft 特別布建,否則此要求將會失敗。

若要傳送此要求,請將下列資訊傳遞至 SendRequestAsync 方法的 requestKind 和 parametersAsJson 參數

參數 描述
requestKind 指定 7 從發行小眾測試版群組移除裝置,或指定 8 從發行小眾測試版群組移除目前登入 Store 的使用者。
parametersAsJson 傳遞 JSON 格式的字串,其中包含下列範例中顯示的資料。

下列範例顯示要傳遞至 parametersAsJson 的 JSON 資料格式。 type 欄位必須指派給字串 RemoveFromFlightGroup。 將 flightGroupId 欄位指派給您要從中移除裝置或使用者的發行小眾測試版群組識別碼。

{ 
    "type": "RemoveFromFlightGroup", 
    "parameters": "{ \"flightGroupId\": \"your group ID\" }" 
}

如果要求發生錯誤, StoreSendRequestResult 傳回值的 HttpStatusCode 屬性會包含回應碼。