Para usar a API Merchant, é necessário vincular seu projeto do Google Cloud à sua conta principal do Merchant Center pelo registro de desenvolvedor. Durante o ciclo de vida da sua 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 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 inatividade.
- Cancelar o registro de um projeto do Google Cloud em uma conta do Merchant Center e registrá-lo em outra conta do Merchant Center.
- Escolha e execute a estratégia certa de transição do projeto na nuvem do Google Cloud 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 de pré-requisitos do guia Registrar-se como desenvolvedor.
Principais regras e limitações
Ao planejar mudanças nos projetos do Google Cloud, lembre-se das seguintes regras:
- Registro de um para muitos projetos: uma única conta principal do Merchant Center
pode ter vários projetos do Google Cloud registrados
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 desativação 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 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 de 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 sem tempo de inatividade. Como uma conta do Merchant Center é compatível com vários projetos registrados do Google Cloud simultaneamente, é possível 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 e-mail da nova conta de serviço)
como um usuário com o papel
ADMINna sua conta principal do Merchant Center.
Etapa 2: registrar o novo projeto do Google Cloud
Faça a autenticação usando as credenciais do seu novo projeto do Google Cloud
e chame o método
accounts.developerRegistration.registerGcp
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 seus projetos na nuvem registrados do Google Cloud
Para confirmar se os projetos novos e atuais do Google Cloud estão
vinculados à sua conta do Merchant Center, chame o
método
accounts.developerRegistration.getDeveloperRegistration:
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 recurso
DeveloperRegistration
com os números numéricos 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 em qual conta do Merchant Center o projeto na nuvem de chamada do Google Cloud está registrado chamando o método accounts.developerRegistration.getAccountForGcpRegistration:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Substitua:
ACCESS_TOKEN: o token de autorização gerado usando as credenciais do projeto do Google Cloud que você quer verificar.
Etapa 4: trocar o tráfego e cancelar o registro do projeto antigo do Google Cloud
- 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 são transferidas sem interrupção.
- Depois que todo o tráfego usar o novo projeto, você poderá remover o link do projeto antigo autenticando-se com as credenciais do projeto antigo do Google Cloud e chamando o método
accounts.developerRegistration.unregisterGcp:
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 projeto antigo 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 registrado do Google Cloud a outra conta do Merchant Center
Como um projeto 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 saber como escolher em qual conta do Merchant Center registrar seu projeto, consulte Considerações importantes:
- Autentique-se 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 o papel
ADMINemNEW_ACCOUNT_IDe seNEW_ACCOUNT_IDtem um site verificado. - Chame
registerGcpemaccounts/NEW_ACCOUNT_ID/developerRegistrationusando credenciais do mesmo projeto na nuvem do Google Cloud. Se oNEW_ACCOUNT_IDainda não tiver um usuário com o papelAPI_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 legado do Merchant Center ou se o proprietário original do projeto saiu da sua organização.
Dependendo se você quer manter o projeto atual ou usar um novo para a API Merchant enquanto mantém a API Content for Shopping no projeto antigo, escolha uma das duas opções a seguir.
Escolher a estratégia do projeto de migração
| Cenário | É necessário ter acesso de administrador ao projeto antigo? | APIs para ativar | 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) | Ative a API Merchant no projeto existente (a API Content for Shopping já está ativada) | Não (a extensão atual no ID do projeto antigo continua válida) |
| Opção 2: manter o projeto antigo para a API Content for Shopping e usar um novo para a API Merchant | Não | Ative a API Merchant no novo projeto (mantenha a API Content for Shopping ativada no projeto antigo). | Não (o projeto antigo mantém a extensão, e 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 seu 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 a sua conta tem qualquer um dos seguintes papéis no projeto atual:
- Proprietário (
roles/owner), - Editor (
roles/editor) - Administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Ative 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. - Registre o projeto do Google Cloud no Merchant Center:
siga as etapas no guia
Registrar como desenvolvedor
para autorizar solicitações do seu projeto atual e chame o método
registerGcppara vincular o projeto do Google Cloud à 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 esta 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 seu projeto antigo do Google Cloud, e você quiser criar a nova integração da API Merchant em um projeto separado e dedicado do Google Cloud:
- Mantenha 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 o pedido de extensão para o ID do projeto antigo foi aprovado, sua integração atual com a API Content for Shopping vai continuar funcionando até o prazo estendido.
- Crie 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 ID do cliente OAuth 2.0) para suas novas cargas de trabalho da API Merchant. - Registre o novo projeto: siga as etapas em
Fazer o registro de desenvolvedor para
autorizar solicitações do seu novo projeto e chamar o método
registerGcpcom um e-mail de contato de desenvolvedor válido. Os e-mails de contas de serviço (terminados em.gserviceaccount.com) não podem ser usados comodeveloperEmail. - Migre as cargas de trabalho de forma incremental: mude as chamadas de API do seu projeto antigo da API Content for Shopping para o novo projeto da API Merchant gradualmente, antes da data de desativação programada da API Content for Shopping (ou antes que a extensão aprovada expire) 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 recém-criados do Google Cloud. Por isso, não é possível mover as cargas de trabalho atuais da API Content for Shopping para um novo projeto na nuvem do Google Cloud por conta própria.
Se não for mais possível fazer chamadas da API Content for Shopping no seu projeto antigo (por exemplo, devido a credenciais revogadas ou acesso irrecuperável ao projeto):
- Entre em contato com o Suporte do Google Cloud para recuperar o acesso ao seu projeto na nuvem (Opção 1) ou
- Siga a Opção 2 para criar e registrar um novo projeto 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 desenvolvedores em Registrar-se como desenvolvedor e nas Perguntas frequentes sobre o registro de desenvolvedores.
- Confira como as credenciais legadas se comportam em Configurar a autenticação da API no Merchant Center.
- Planeje o lançamento da sub-API com Iniciar sua migração.
- Confira detalhes sobre o acesso estendido à API Content for Shopping em Solicitar uma extensão de migração.