Per utilizzare l'API Merchant, devi collegare il tuo progetto Google Cloud al tuo account Merchant Center principale tramite la registrazione dello sviluppatore. Durante il ciclo di vita dell'integrazione, potresti dover modificare l'ID progetto Google Cloud associato al tuo account Merchant Center, gestire più progetti in diversi ambienti o eseguire la transizione dei progetti durante la migrazione dall'API Content for Shopping.
Questa guida spiega come:
- Modificare o ruotare l'ID progetto Google Cloud per un'integrazione dell'API Merchant esistente senza tempi di inattività.
- Annullare la registrazione di un progetto Google Cloud da un account Merchant Center e registrarlo con un altro account Merchant Center.
- Scegliere ed eseguire la strategia di transizione del progetto Google Cloud corretta se stai eseguendo la migrazione dall'API Content for Shopping all'API Merchant.
Prerequisiti
Prima di gestire o eseguire la transizione dei progetti Google Cloud, verifica di soddisfare i prerequisiti per la registrazione dello sviluppatore. Per maggiori dettagli, consulta la sezione Prerequisiti della guida Registrarsi come sviluppatore.
Regole e limitazioni principali
Quando pianifichi le modifiche ai tuoi progetti Google Cloud, tieni presente le seguenti regole:
- Registrazione di progetti uno-a-molti: un singolo account Merchant Center principale può avere più progetti Google Cloud registrati contemporaneamente. Tuttavia, ogni progetto Google Cloud può essere registrato in un solo account Merchant Center principale alla volta. Se tenti di registrare un progetto già collegato a un altro account Merchant Center, viene restituito un errore
ALREADY_EXISTS(409 Conflict) con il motivoDUPLICATE_PROJECT_REGISTRATION. - Privacy della proprietà del progetto: per motivi di sicurezza e privacy, l'assistenza di Google Shopping e dell'API Merchant non può rivelare gli indirizzi email del proprietario o dell'amministratore di un progetto Google Cloud. Se perdi l'accesso a un progetto, contatta l'assistenza Google Cloud.
- Le estensioni di ritiro dell'API Content for Shopping sono specifiche del progetto: se hai ricevuto un'approvazione dell'accesso esteso per l'API Content for Shopping, questa estensione si applica solo all'ID progetto Google Cloud specifico inviato nella richiesta. Le estensioni non vengono trasferite automaticamente ai nuovi progetti Google Cloud.
Modificare l'ID progetto Google Cloud per un account API Merchant
Se utilizzi già l'API Merchant e devi passare la tua integrazione a un nuovo progetto Google Cloud, ad esempio a causa di una ristrutturazione organizzativa, di norme di rotazione delle credenziali o della perdita dell'accesso amministrativo a un progetto precedente, puoi eseguire la transizione dei progetti senza tempi di inattività. Poiché un account Merchant Center supporta più progetti Google Cloud registrati contemporaneamente, puoi registrare il nuovo progetto prima di ritirare quello precedente.
Passaggio 1: crea e configura il nuovo progetto Google Cloud
- Crea un nuovo progetto nella console Google Cloud. Per istruzioni dettagliate, consulta Creare un progetto Google Cloud.
- Abilita l'API Merchant (
merchantapi.googleapis.com) nel nuovo progetto. Consulta la sezione Abilitare l'API Merchant in Creare un progetto Google Cloud. - Crea le credenziali di autenticazione (un account di servizio o un ID client OAuth 2.0) nel nuovo progetto Google Cloud.
- Aggiungi l'indirizzo email di autenticazione (ad esempio la nuova email dell'account di servizio) come utente con il ruolo
ADMINnel tuo account Merchant Center principale.
Passaggio 2: registra il nuovo progetto Google Cloud
Autenticati utilizzando le credenziali del nuovo progetto Google Cloud
e chiama il
accounts.developerRegistration.registerGcp
metodo per collegare il nuovo progetto al tuo account Merchant Center principale. Per
istruzioni dettagliate, consulta la sezione
Effettuare la chiamata di registrazione
in
Registrarsi come sviluppatore.
Passaggio 3: verifica i progetti Google Cloud registrati
Per verificare che sia il progetto Google Cloud esistente sia quello nuovo siano
collegati al tuo account Merchant Center, chiama il
accounts.developerRegistration.getDeveloperRegistration
metodo:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
Sostituisci quanto segue:
ACCOUNT_ID: il tuo ID Merchant CenterACCESS_TOKEN: il token di autorizzazione per effettuare la chiamata API
La risposta restituisce la
DeveloperRegistration
risorsa con i numeri dei progetti Google Cloud di tutti i progetti collegati
nel campo gcpIds:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
Puoi anche verificare l'account Merchant Center con cui è registrato il progetto Google Cloud chiamante chiamando il
accounts.developerRegistration.getAccountForGcpRegistration
metodo:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Sostituisci quanto segue:
ACCESS_TOKEN: il token di autorizzazione generato utilizzando le credenziali del progetto Google Cloud che vuoi controllare
Passaggio 4: passa il traffico e annulla la registrazione del vecchio progetto Google Cloud
- Aggiorna la configurazione dell'applicazione in modo che utilizzi le credenziali del nuovo progetto Google Cloud. Poiché entrambi i progetti sono registrati, i tuoi carichi di lavoro vengono trasferiti senza interruzioni.
- Una volta che tutto il traffico utilizza il nuovo progetto, puoi facoltativamente rimuovere il collegamento al vecchio
progetto autenticandoti con le credenziali del vecchio progetto Google Cloud
e chiamando il
accounts.developerRegistration.unregisterGcpmetodo:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN
Sostituisci quanto segue:
ACCOUNT_ID: il tuo ID Merchant CenterOLD_PROJECT_ACCESS_TOKEN: il token di autorizzazione del vecchio progetto Google Cloud per effettuare la chiamata 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"
Ri assegnare un progetto Google Cloud registrato a un altro account Merchant Center
Poiché un progetto Google Cloud può essere registrato in un solo account Merchant Center principale
alla volta, segui questi passaggi per riassegnare un progetto
esistente da un account Merchant Center (OLD_ACCOUNT_ID) a
un altro (NEW_ACCOUNT_ID). Per le linee guida sulla scelta dell'account Merchant Center
con cui registrare il progetto, consulta
Considerazioni importanti:
- Autenticati utilizzando le credenziali del progetto Google Cloud che
hanno accesso a
OLD_ACCOUNT_IDe chiamaunregisterGcpsuaccounts/OLD_ACCOUNT_ID/developerRegistration. - Verifica che l'identità di autenticazione abbia il ruolo
ADMINsuNEW_ACCOUNT_IDe cheNEW_ACCOUNT_IDabbia un sito web verificato. - Chiama
registerGcpsuaccounts/NEW_ACCOUNT_ID/developerRegistrationutilizzando le credenziali dello stesso progetto Google Cloud. SeNEW_ACCOUNT_IDnon ha ancora un utente con il ruoloAPI_DEVELOPER, passa un'email utente valida nel campo della richiestadeveloperEmail. Le email degli account di servizio che terminano con.gserviceaccount.comnon possono essere utilizzate comedeveloperEmail.
Eseguire la transizione dei progetti Google Cloud durante la migrazione dall'API Content for Shopping
Quando esegui la migrazione dall'API Content for Shopping all'API Merchant, potresti riscontrare limitazioni di accesso al progetto Google Cloud legacy, ad esempio se le chiavi API originali sono state configurate direttamente tramite il flusso di lavoro di autenticazione di Merchant Center legacy o se il proprietario del progetto originale ha lasciato la tua organizzazione.
A seconda che tu voglia mantenere il progetto esistente o utilizzare un nuovo progetto per l'API Merchant mantenendo l'API Content for Shopping nel vecchio progetto, scegli una delle due opzioni seguenti.
Scegliere la strategia di progetto di migrazione
| Scenario | È necessario l'accesso amministrativo al vecchio progetto? | API da abilitare | È necessaria l'estensione dell'API Content for Shopping nel nuovo progetto? |
|---|---|---|---|
| Opzione 1: mantieni il progetto esistente | Sì (o recupera tramite l'assistenza Google Cloud) | Abilita l'API Merchant nel progetto esistente (l'API Content for Shopping è già abilitata) | No (l'estensione esistente nel vecchio ID progetto rimane valida) |
| Opzione 2: mantieni il vecchio progetto per l'API Content for Shopping e utilizza un nuovo progetto per l'API Merchant | No | Abilita l'API Merchant nel nuovo progetto (mantieni l'API Content for Shopping abilitata nel vecchio progetto) | No (il vecchio progetto mantiene la sua estensione; il nuovo progetto chiama solo l'API Merchant) |
Opzione 1: mantieni il progetto Google Cloud esistente
Scegli questa opzione se vuoi utilizzare il progetto Google Cloud esistente sia per l'API Content for Shopping sia per l'API Merchant.
Prima di iniziare, verifica o recupera l'accesso al progetto esistente. Accedi alla console Google Cloud e verifica che il tuo account abbia uno dei seguenti ruoli nel progetto esistente:
- Proprietario (
roles/owner), - Editor (
roles/editor) - Amministratore Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Abilita l'API Merchant: abilita
merchantapi.googleapis.comnella libreria API Google Cloud o con il comandogcloud. Per istruzioni passo passo, consulta Configurare l'autenticazione API da Merchant Center. - Registra il progetto Google Cloud con Merchant Center:
segui i passaggi descritti nella
Registrarsi come sviluppatore
guida per autorizzare le richieste dal progetto esistente e chiama il
registerGcpmetodo per collegare il progetto Google Cloud esistente al tuo account Merchant Center principale. Le chiavi dell'account di servizio esistenti e l'estensione dell'API Content for Shopping approvata continuano a funzionare senza modifiche.
Opzione 2: utilizza il vecchio progetto Google Cloud per l'API Content for Shopping e un nuovo progetto per l'API Merchant
Scegli questa opzione se l'integrazione dell'API Content for Shopping legacy è già in esecuzione con credenziali valide e un'estensione approvata nel vecchio progetto Google Cloud e vuoi creare la nuova integrazione dell'API Merchant in un progetto Google Cloud separato e dedicato:
- Mantieni l'integrazione dell'API Content for Shopping nel vecchio progetto: lascia i flussi di lavoro e le credenziali dell'API Content for Shopping esistenti in esecuzione nel vecchio progetto Google Cloud. Se la richiesta di estensione per il vecchio ID progetto è stata approvata, l'integrazione dell'API Content for Shopping corrente continua a funzionare fino alla scadenza estesa.
- Crea un nuovo progetto Google Cloud esclusivamente per l'API Merchant: crea un nuovo progetto Google Cloud, abilita
merchantapi.googleapis.come crea le credenziali (un account di servizio o un ID client OAuth 2.0) per i nuovi carichi di lavoro dell'API Merchant. - Registra il nuovo progetto: segui i passaggi descritti in
Registrarsi come sviluppatore per
autorizzare le richieste dal nuovo progetto e chiama il
registerGcpmetodo con un'email di contatto dello sviluppatore valida. Le email degli account di servizio (che terminano con.gserviceaccount.com) non possono essere utilizzate comedeveloperEmail. - Esegui la migrazione dei carichi di lavoro in modo incrementale: sposta gradualmente le chiamate API dal vecchio progetto dell'API Content for Shopping al nuovo progetto dell'API Merchant, prima della data di ritiro pianificata dell'API Content for Shopping (o prima della scadenza dell'estensione approvata), e ritira il vecchio progetto al termine della migrazione.
Caso speciale: hai perso l'accesso al vecchio progetto Google Cloud prima di completare la migrazione
Poiché l'API Content for Shopping è ritirata, non è più elencata nella libreria API Google Cloud e non può essere abilitata nei progetti Google Cloud appena creati. Di conseguenza, non puoi spostare autonomamente i carichi di lavoro dell'API Content for Shopping esistenti in un nuovo progetto Google Cloud.
Se non puoi più effettuare chiamate all'API Content for Shopping dal vecchio progetto (ad esempio, a causa di credenziali revocate o dell'accesso al progetto non recuperabile):
- Contatta l'Assistenza Google Cloud per recuperare l'accesso al progetto cloud esistente (opzione 1) oppure
- Segui l'opzione 2 per creare e registrare un nuovo progetto Google Cloud ed eseguire la migrazione dei flussi di lavoro interessati direttamente all'API Merchant. Se riscontri un blocco critico della migrazione, contatta l'assistenza dell'API Merchant.
Passaggi successivi
- Scopri di più sui requisiti di registrazione dello sviluppatore in Registrarsi come sviluppatore e nelle Domande frequenti sulla registrazione dello sviluppatore.
- Esamina il comportamento delle credenziali legacy in Configurare l'autenticazione API da Merchant Center.
- Pianifica il lancio della sotto-API con Inizia la migrazione.
- Trova i dettagli sull'accesso esteso all'API Content for Shopping in Richiedere un'estensione della migrazione.