Para usar a API Merchant, é necessário vincular seu projeto do Google Cloud à conta principal do Merchant Center pelo registro de desenvolvedor. Ao longo do ciclo de vida da integração, talvez seja necessário mudar o ID do projeto do Google Cloud associado à sua conta do Merchant Center, gerenciar vários projetos em ambientes diferentes ou fazer a transição de projetos ao migrar da API Content for Shopping.
Neste guia, você vai aprender a:
- Mudar ou alternar o ID do projeto do Google Cloud para uma integração da API Merchant sem tempo de inatividade.
- Cancelar o registro de um projeto do Google Cloud em uma conta do Merchant Center e registrá-lo em outra.
- Escolher e executar a estratégia de transição de projeto na nuvem do Google Cloud certa se você estiver migrando da API Content for Shopping para a API Merchant.
Pré-requisitos
Antes de gerenciar ou fazer a transição de projetos na nuvem do Google Cloud, verifique se você atende aos pré-requisitos de registro de desenvolvedor. Para mais detalhes, consulte a seção Pré-requisitos do guia Fazer o registro de desenvolvedor.
Regras e limitações importantes
Ao planejar mudanças nos seus projetos do Google Cloud, tenha em mente as seguintes regras:
- Registro de projeto um para muitos:uma única conta principal do Merchant Center pode ter vários projetos do Google Cloud registrados nela simultaneamente. No entanto, cada projeto do Google Cloud só pode ser registrado em uma conta principal do Merchant Center por vez. A tentativa de registrar um projeto que já está vinculado a outra conta do Merchant Center retorna um erro
ALREADY_EXISTS(409 Conflict) com o motivoDUPLICATE_PROJECT_REGISTRATION. - Privacidade da propriedade do projeto:por motivos de segurança e privacidade, o suporte do Google Shopping e da API Merchant não pode divulgar os endereços de e-mail do proprietário ou administrador de um projeto do Google Cloud. Se você perder o acesso a um projeto, entre em contato com o suporte do Google Cloud.
- As extensões de encerramento da API Content for Shopping são específicas do projeto:se você recebeu uma aprovação de acesso estendido para a API Content for Shopping, essa extensão se aplica apenas ao ID do projeto do Google Cloud específico enviado na sua solicitação. As extensões não são transferidas automaticamente para novos projetos do Google Cloud.
Mudar o ID do projeto do Google Cloud para uma conta da API Merchant
Se você já usa a API Merchant e precisa mudar sua integração para um novo projeto do Google Cloud, por exemplo, devido a uma reestruturação organizacional, políticas de rotação de credenciais ou perda de acesso administrativo a um projeto mais antigo, é possível fazer a transição de projetos sem tempo de inatividade. Como uma conta do Merchant Center oferece suporte a vários projetos do Google Cloud registrados simultaneamente, você pode registrar o novo projeto antes de desativar o antigo.
Etapa 1: criar e configurar o novo projeto do Google Cloud
- Crie um novo projeto no console do Google Cloud. Para instruções detalhadas, consulte Criar um projeto do Google Cloud.
- Ative a API Merchant (
merchantapi.googleapis.com) no novo projeto. Consulte a seção Ativar a API Merchant em Criar um projeto do Google Cloud. - Crie credenciais de autenticação (uma conta de serviço ou um ID do cliente OAuth 2.0) no novo projeto do Google Cloud.
- Adicione o endereço de e-mail de autenticação (como o novo e-mail da conta de serviço) como um usuário com a função
ADMINna sua conta principal do Merchant Center.
Etapa 2: registrar o novo projeto do Google Cloud
Autentique usando as credenciais do novo projeto na nuvem do Google Cloud
e chame o
accounts.developerRegistration.registerGcp
método para vincular o novo projeto à sua conta principal do Merchant Center. Para
instruções detalhadas, consulte a
seção Fazer a chamada de registro
em
Fazer o registro de desenvolvedor.
Etapa 3: verificar os projetos do Google Cloud registrados
Para confirmar que os projetos do Google Cloud atuais e novos estão
vinculados à sua conta do Merchant Center, chame o
accounts.developerRegistration.getDeveloperRegistration
método:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
Substitua:
ACCOUNT_ID: seu ID do Merchant CenterACCESS_TOKEN: o token de autorização para fazer a chamada de API
A resposta retorna o
DeveloperRegistration
recurso com os números do projeto na nuvem do Google Cloud de todos os projetos vinculados
no campo gcpIds:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
Também é possível verificar a conta do Merchant Center em que o projeto na nuvem do Google Cloud de chamada está registrado chamando o
accounts.developerRegistration.getAccountForGcpRegistration
método:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Substitua:
ACCESS_TOKEN: o token de autorização gerado usando credenciais do projeto na nuvem do Google Cloud que você quer verificar
Etapa 4: mudar o tráfego e cancelar o registro do projeto do Google Cloud antigo
- Atualize a configuração do aplicativo para usar as credenciais do novo projeto do Google Cloud. Como os dois projetos estão registrados, as cargas de trabalho fazem a transição sem interrupção.
- Depois que todo o tráfego usar o novo projeto, você poderá remover o link do projeto antigo
autenticando com as credenciais do antigo projeto do Google Cloud
e chamando o
accounts.developerRegistration.unregisterGcpmétodo:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN
Substitua:
ACCOUNT_ID: seu ID do Merchant CenterOLD_PROJECT_ACCESS_TOKEN: o token de autorização do antigo projeto na nuvem do Google Cloud para fazer a chamada de API
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationName;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceClient;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceSettings;
import com.google.shopping.merchant.accounts.v1.UnregisterGcpRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/**
* This class demonstrates how to unregister the GCP project currently used to call the Merchant API
* for a specific account.
*/
public class UnregisterGcpSample {
public static void unregisterGcp(Config config) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
DeveloperRegistrationServiceSettings developerRegistrationServiceSettings =
DeveloperRegistrationServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates DeveloperRegistration name to identify the DeveloperRegistration.
// The name has the format: accounts/{account}/developerRegistration
String name =
DeveloperRegistrationName.newBuilder()
.setAccount(config.getAccountId().toString())
.build()
.toString();
// Calls the API and propagates any network failures/errors.
try (DeveloperRegistrationServiceClient developerRegistrationServiceClient =
DeveloperRegistrationServiceClient.create(developerRegistrationServiceSettings)) {
// Creates a request to unregister the GCP project.
UnregisterGcpRequest request = UnregisterGcpRequest.newBuilder().setName(name).build();
System.out.println("Sending UnregisterGcp request for: " + name);
developerRegistrationServiceClient.unregisterGcp(request);
System.out.println("Unregister GCP successful.");
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
unregisterGcp(config);
}
}
cURL
curl -X POST \
"https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN"
Reatribuir um projeto do Google Cloud registrado a uma conta diferente do Merchant Center
Como um projeto na nuvem do Google Cloud só pode ser registrado em uma conta principal
do Merchant Center por vez, siga estas etapas para reatribuir um
projeto de uma conta do Merchant Center (OLD_ACCOUNT_ID) para
outra (NEW_ACCOUNT_ID). Para diretrizes sobre como escolher a conta do Merchant Center
em que registrar seu projeto, consulte
Considerações importantes:
- Autentique usando as credenciais do projeto na nuvem do Google Cloud que
têm acesso a
OLD_ACCOUNT_IDe chameunregisterGcpemaccounts/OLD_ACCOUNT_ID/developerRegistration. - Verifique se a identidade de autenticação tem a função
ADMINemNEW_ACCOUNT_IDe seNEW_ACCOUNT_IDtem um site verificado. - Chame
registerGcpemaccounts/NEW_ACCOUNT_ID/developerRegistrationusando credenciais do mesmo projeto na nuvem do Google Cloud. SeNEW_ACCOUNT_IDainda não tiver um usuário com a funçãoAPI_DEVELOPER, transmita um e-mail de usuário válido no campo de solicitaçãodeveloperEmail. Os e-mails de contas de serviço que terminam em.gserviceaccount.comnão podem ser usados comodeveloperEmail.
Fazer a transição de projetos na nuvem do Google Cloud ao migrar da API Content for Shopping
Ao migrar da API Content for Shopping para a API Merchant, você pode encontrar limitações de acesso no seu projeto legado do Google Cloud, por exemplo, se as chaves de API originais foram configuradas diretamente pelo fluxo de trabalho de autenticação do Merchant Center legado ou se o proprietário original do projeto deixou sua organização.
Dependendo se você quer manter o projeto atual ou usar um novo projeto para a API Merchant, mantendo a API Content for Shopping no projeto antigo, escolha uma das duas opções a seguir.
Escolher a estratégia de projeto de migração
| Cenário | É necessário acesso de administrador ao projeto antigo? | APIs a serem ativadas | A extensão da API Content for Shopping é necessária no novo projeto? |
|---|---|---|---|
| Opção 1: manter o projeto atual | Sim (ou recuperar pelo suporte do Google Cloud) | Ativar a API Merchant no projeto atual (a API Content for Shopping já está ativada) | Não (a extensão atual no ID do projeto antigo permanece válida) |
| Opção 2: manter o projeto antigo para a API Content for Shopping e usar um novo projeto para a API Merchant | Não | Ativar a API Merchant no projeto novo (manter a API Content for Shopping ativada no projeto antigo) | Não (o projeto antigo mantém a extensão; o novo projeto chama apenas a API Merchant) |
Opção 1: manter o projeto atual do Google Cloud
Escolha essa opção se quiser usar o projeto atual do Google Cloud para a API Content for Shopping e a API Merchant.
Antes de começar, verifique ou recupere o acesso ao projeto atual. Faça login no console do Google Cloud e confirme se sua conta tem qualquer uma das seguintes funções no projeto atual:
- Proprietário (
roles/owner), - Editor (
roles/editor) - Administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Ativar a API Merchant: ative
merchantapi.googleapis.comna biblioteca de APIs do Google Cloud ou com o comandogcloud. Para instruções detalhadas, consulte Configurar a autenticação da API no Merchant Center. - Registrar o projeto do Google Cloud no Merchant Center:
Siga as etapas do guia
Fazer o registro de desenvolvedor
para autorizar solicitações do projeto atual e chame o método
registerGcppara vincular o projeto do Google Cloud atual à sua conta principal do Merchant Center. As chaves de conta de serviço atuais e a extensão aprovada da API Content for Shopping continuam funcionando sem mudanças.
Opção 2: usar o projeto antigo do Google Cloud para a API Content for Shopping e um novo projeto para a API Merchant
Escolha essa opção se a integração legada da API Content for Shopping já estiver em execução com credenciais válidas e uma extensão aprovada no projeto antigo do Google Cloud e você quiser criar sua nova integração da API Merchant em um projeto na nuvem separado e dedicado:
- Manter a integração da API Content for Shopping no projeto antigo:deixe os fluxos de trabalho e as credenciais da API Content for Shopping em execução no projeto antigo do Google Cloud. Se a solicitação de extensão para o ID do projeto antigo foi aprovada, a integração atual da API Content for Shopping continua funcionando até o prazo estendido.
- Criar um novo projeto do Google Cloud exclusivamente para a API Merchant:crie um novo projeto do Google Cloud, ative
merchantapi.googleapis.come crie credenciais (uma conta de serviço ou um ID do cliente OAuth 2.0) para suas novas cargas de trabalho da API Merchant. - Registrar o novo projeto: siga as etapas em
Fazer o registro de desenvolvedor para
autorizar solicitações do novo projeto e chame o
registerGcpmétodo com um e-mail de contato de desenvolvedor válido. Os e-mails de contas de serviço (que terminam em.gserviceaccount.com) não podem ser usados comodeveloperEmail. - Migrar cargas de trabalho de forma incremental: transfira as chamadas de API do projeto antigo da API Content for Shopping para o novo projeto da API Merchant gradualmente, antes da data de descontinuação programada da API Content for Shopping (ou antes da expiração da extensão aprovada), e desative o projeto antigo quando a migração for concluída.
Caso especial: perda de acesso ao projeto antigo do Google Cloud antes de concluir a migração
Como a API Content for Shopping foi descontinuada, ela não está mais listada na biblioteca de APIs do Google Cloud e não pode ser ativada em projetos do Google Cloud recém-criados. Como resultado, não é possível mover cargas de trabalho da API Content for Shopping para um novo projeto do Google Cloud por conta própria.
Se você não puder mais fazer chamadas da API Content for Shopping no projeto antigo (por exemplo, devido a credenciais revogadas ou acesso ao projeto irrecuperável):
- Entre em contato com o Suporte do Google Cloud para recuperar o acesso ao projeto na nuvem atual do Google Cloud (opção 1) ou
- Siga a opção 2 para criar e registrar um novo projeto na nuvem do Google Cloud e migrar os fluxos de trabalho afetados diretamente para a API Merchant. Se você encontrar um bloqueador de migração crítico, entre em contato com o suporte da API Merchant.
Próximas etapas
- Saiba mais sobre os requisitos de registro de desenvolvedor em Fazer o registro de desenvolvedor e nas Perguntas frequentes sobre o registro de desenvolvedor.
- Analise como as credenciais legadas se comportam em Configurar a autenticação da API no Merchant Center.
- Planeje a implantação da sub-API com Começar a migração.
- Encontre detalhes sobre o acesso estendido da API Content for Shopping em Solicitar uma extensão de migração.