Enviar solicitações para a Microsoft Store

A partir do Windows 10, versão 1607, o SDK do Windows fornece APIs para operações relacionadas à Loja (como compras no aplicativo) no namespace Windows.Services.Store . No entanto, embora os serviços que dão suporte à Loja estejam sendo constantemente atualizados, expandidos e aprimorados entre as versões do sistema operacional, novas APIs normalmente são adicionadas ao SDK do Windows somente durante as principais versões do sistema operacional.

Fornecemos o método SendRequestAsync como uma maneira flexível de disponibilizar novas operações da Store para aplicativos UWP (Plataforma Universal do Windows) antes que uma nova versão do SDK do Windows seja lançada. Você pode usar esse método para enviar solicitações à Loja para novas operações que ainda não têm uma API correspondente disponível na versão mais recente do SDK do Windows.

Observação

O método SendRequestAsync está disponível apenas para aplicativos direcionados ao Windows 10, versão 1607 ou posterior. Algumas das solicitações compatíveis com esse método só têm suporte em versões posteriores ao Windows 10, versão 1607.

SendRequestAsync é um método estático da classe StoreRequestHelper . Para chamar esse método, você deve passar as seguintes informações para o método:

  • Um objeto StoreContext que fornece informações sobre o usuário para o qual você deseja executar a operação. Para obter mais informações sobre esse objeto, consulte Introdução à classe StoreContext.
  • Um número inteiro que identifica a solicitação que você deseja enviar para a Loja.
  • Se a solicitação der suporte a argumentos, você também poderá passar uma cadeia de caracteres formatada em JSON que contenha os argumentos a serem passados junto com a solicitação.

O exemplo a seguir demonstra como chamar esse método. Este exemplo requer o uso de instruções para os namespaces Windows.Services.Store e 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;
}

Consulte as seções a seguir para obter informações sobre as solicitações que estão disponíveis atualmente por meio do método SendRequestAsync . Atualizaremos este artigo quando o suporte para novas solicitações for adicionado.

Solicitação de classificações e avaliações no aplicativo

Você pode iniciar programaticamente uma caixa de diálogo do seu aplicativo que solicita que o cliente classifique seu aplicativo e envie uma revisão passando o inteiro de solicitação 16 para o método SendRequestAsync . Para obter mais informações, consulte Mostrar uma caixa de diálogo de classificação e revisão em seu aplicativo.

Solicitações para cenários de grupo de voo

Importante

No momento, todas as solicitações de grupo de versão de pré-lançamento descritas nesta seção não estão disponíveis para a maioria das contas de desenvolvedor. Essas solicitações falharão, a menos que sua conta de desenvolvedor seja especialmente provisionada pela Microsoft.

O método SendRequestAsync dá suporte a um conjunto de solicitações para cenários de grupo de versão de pré-lançamento, como adicionar um usuário ou dispositivo a um grupo de versão de pré-lançamento. Para enviar essas solicitações, passe o valor 7 ou 8 para o parâmetro requestKind junto com uma cadeia de caracteres formatada em JSON para o parâmetro parametersAsJson que indica a solicitação que você deseja enviar junto com quaisquer argumentos relacionados. O método também suporta solicitações para mapear um PFN com um BigID (ProductID do Display Catalog). Para enviar essa solicitação, passe o valor 9 para o parâmetro requestKind. Esses valores requestKind diferem das seguintes maneiras.

Valor do tipo de solicitação Descrição
7 As solicitações são executadas no contexto do dispositivo atual. Esse valor só pode ser usado no Windows 10, versão 1703 ou posterior.
8 As solicitações são executadas no contexto do usuário que está conectado à Loja no momento. Esse valor pode ser usado no Windows 10, versão 1607 ou posterior.
9 As solicitações retornam o BigID (ProductId) por PackageFamilyName por meio de uma solicitação HTTP para o Catálogo de Display com autenticação anônima.

As seguintes solicitações de grupo de versão de pré-lançamento estão implementadas no momento.

Recuperar variáveis remotas para o grupo de voo mais bem classificado

Importante

No momento, essa solicitação não está disponível para a maioria das contas de desenvolvedor. Essa solicitação falhará, a menos que sua conta de desenvolvedor seja especialmente provisionada pela Microsoft.

Essa solicitação recupera as variáveis remotas do grupo de versão de pré-lançamento com classificação mais alta para o usuário ou dispositivo atual. Para enviar essa solicitação, passe as informações a seguir para os parâmetros requestKind e parametersAsJson do método SendRequestAsync .

Parâmetro Descrição
tipo de solicitação Especifique 7 para retornar o grupo de versão de pré-lançamento de classificação mais alta para o dispositivo ou especifique 8 para retornar o grupo de versão de pré-lançamento de classificação mais alta para o usuário e dispositivo atuais. Recomendamos usar o valor 8 para o parâmetro requestKind , pois esse valor retornará o grupo de versão de pré-lançamento com classificação mais alta na associação para o usuário e o dispositivo atuais.
parametersAsJson Passe uma cadeia de caracteres formatada em JSON que contenha os dados mostrados no exemplo abaixo.

O exemplo a seguir mostra o formato dos dados JSON a serem passados para parametersAsJson. O campo type deve ser atribuído à cadeia de caracteres GetRemoteVariables. Atribua o campo projectId à ID do projeto no qual você definiu as variáveis remotas no Partner Center.

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

Depois de enviar essa solicitação, a propriedade Response do valor retornado StoreSendRequestResult contém uma cadeia de caracteres formatada em JSON com os campos a seguir.

Campo Descrição
anônimo Um valor booliano, em que true indica que a identidade do usuário ou do dispositivo não estava presente na solicitação e false indica que a identidade do usuário ou do dispositivo estava presente na solicitação.
name Uma cadeia de caracteres que contém o nome do grupo de versão de pré-lançamento mais bem classificado ao qual o dispositivo ou usuário pertence.
configurações Um dicionário de pares de chave/valor que contém o nome e o valor das variáveis remotas que o desenvolvedor configurou para o grupo de versão de pré-lançamento.

O exemplo a seguir demonstra um valor retornado para essa solicitação.

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

Adicionar o dispositivo ou usuário atual a um grupo de versão de pré-lançamento

Importante

No momento, essa solicitação não está disponível para a maioria das contas de desenvolvedor. Essa solicitação falhará, a menos que sua conta de desenvolvedor seja especialmente provisionada pela Microsoft.

Para enviar essa solicitação, passe as informações a seguir para os parâmetros requestKind e parametersAsJson do método SendRequestAsync .

Parâmetro Descrição
tipo de solicitação Especifique 7 para adicionar o dispositivo a um grupo de versão de pré-lançamento ou especifique 8 para adicionar o usuário que está conectado à Loja a um grupo de versão de pré-lançamento.
parametersAsJson Passe uma cadeia de caracteres formatada em JSON que contenha os dados mostrados no exemplo abaixo.

O exemplo a seguir mostra o formato dos dados JSON a serem passados para parametersAsJson. O campo type deve ser atribuído à cadeia de caracteres AddToFlightGroup. Atribua o campo flightGroupId ao ID do grupo de versão de pré-lançamento ao qual você deseja adicionar o dispositivo ou usuário.

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

Se houver um erro com a solicitação, a propriedade HttpStatusCode do valor retornado StoreSendRequestResult conterá o código de resposta.

Remover o dispositivo ou usuário atual de um grupo de versão de pré-lançamento

Importante

No momento, essa solicitação não está disponível para a maioria das contas de desenvolvedor. Essa solicitação falhará, a menos que sua conta de desenvolvedor seja especialmente provisionada pela Microsoft.

Para enviar essa solicitação, passe as informações a seguir para os parâmetros requestKind e parametersAsJson do método SendRequestAsync .

Parâmetro Descrição
tipo de solicitação Especifique 7 para remover o dispositivo de um grupo de versão de pré-lançamento ou especifique 8 para remover o usuário que está conectado à Loja de um grupo de versão de pré-lançamento.
parametersAsJson Passe uma cadeia de caracteres formatada em JSON que contenha os dados mostrados no exemplo abaixo.

O exemplo a seguir mostra o formato dos dados JSON a serem passados para parametersAsJson. O campo type deve ser atribuído à cadeia de caracteres RemoveFromFlightGroup. Atribua o campo flightGroupId à ID do grupo de versão de pré-lançamento do qual você deseja remover o dispositivo ou usuário.

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

Se houver um erro com a solicitação, a propriedade HttpStatusCode do valor retornado StoreSendRequestResult conterá o código de resposta.