Per utilizzare l'API Merchant, devi collegare il tuo progetto Google Cloud al tuo account Merchant Center principale tramite la registrazione dello sviluppatore. Nel corso del ciclo di vita della tua integrazione, potresti dover modificare l'ID progetto Google Cloud associato al tuo account Merchant Center, gestire più progetti in ambienti diversi o eseguire la transizione dei progetti durante la migrazione dall'API Content for Shopping.
Questa guida spiega come:
- Modifica o ruota 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.
- Scegli ed esegui 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 degli sviluppatori. Per maggiori dettagli, consulta la sezione Prerequisiti della guida Registrati come sviluppatore.
Regole e limitazioni principali
Quando pianifichi le modifiche ai tuoi progetti Google Cloud, tieni presente le seguenti regole:
- Registrazione di progetti one-to-many: a un singolo account Merchant Center principale possono essere registrati contemporaneamente più progetti Google Cloud. Tuttavia, ogni progetto Google Cloud può essere registrato in un solo account Merchant Center principale alla volta. Se provi a registrare un progetto già collegato a un altro account Merchant Center, viene restituito un errore
ALREADY_EXISTS(409 Conflict) con 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ò divulgare 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 per la disattivazione dell'API Content for Shopping sono specifiche per il progetto: se hai ricevuto un'approvazione per l'accesso esteso all'API Content for Shopping, l'estensione si applica solo all'ID progetto Google Cloud specifico inviato nella richiesta. Le estensioni non vengono trasferite automaticamente ai nuovi progetti Google Cloud.
Modifica l'ID progetto Google Cloud per un account API Merchant
Se utilizzi già l'API Merchant e devi trasferire l'integrazione a un nuovo progetto Google Cloud, ad esempio a causa di una riorganizzazione aziendale, di policy 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 Crea un progetto Google Cloud.
- Attiva l'API Merchant (
merchantapi.googleapis.com) nel nuovo progetto. Consulta la sezione Abilita l'API Merchant in Crea un progetto Google Cloud. - Crea le credenziali di autenticazione (un service account o un ID client OAuth 2.0) nel nuovo progetto Google Cloud.
- Aggiungi l'indirizzo email di autenticazione (ad esempio l'indirizzo email del nuovo service account) come utente con il ruolo
ADMINnel tuo account Merchant Center principale.
Passaggio 2: registra il nuovo progetto Google Cloud
Esegui l'autenticazione utilizzando le credenziali del tuo nuovo progetto Google Cloud e chiama il metodo accounts.developerRegistration.registerGcp per collegare il nuovo progetto al tuo account Merchant Center principale. Per istruzioni dettagliate, consulta la sezione Effettua la chiamata di registrazione in Registrati come sviluppatore.
Passaggio 3: verifica i progetti Google Cloud registrati
Per verificare che i tuoi progetti Google Cloud esistenti e nuovi siano collegati al tuo account Merchant Center, chiama il metodo accounts.developerRegistration.getDeveloperRegistration:
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 risorsa DeveloperRegistration con i numeri di progetto Google Cloud numerici di tutti i progetti collegati nel campo gcpIds:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
Puoi anche verificare con quale account Merchant Center è registrato il progetto Google Cloud chiamante chiamando il metodo accounts.developerRegistration.getAccountForGcpRegistration:
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: cambia 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 workload vengono trasferiti senza interruzioni.
- Una volta che tutto il traffico utilizza il nuovo progetto, puoi facoltativamente rimuovere il link al vecchio progetto autenticandoti con le credenziali del vecchio progetto Google Cloud e chiamando il metodo
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
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"
Riassegna 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 linee guida sulla scelta dell'account Merchant Center in cui registrare il progetto, consulta Considerazioni importanti:
- Esegui l'autenticazione utilizzando le credenziali del progetto cloud Google Cloud che hanno accesso a
OLD_ACCOUNT_IDe chiamaunregisterGcpsuaccounts/OLD_ACCOUNT_ID/developerRegistration. - Verifica che l'identità di autenticazione disponga del 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 indirizzo email utente valido nel campo della richiestadeveloperEmail. Le email dei service account che terminano con.gserviceaccount.comnon possono essere utilizzate comedeveloperEmail.
Esegui la transizione dei progetti Google Cloud durante la migrazione dall'API Content for Shopping
Durante la migrazione dall'API Content for Shopping all'API Merchant, potresti riscontrare limitazioni di accesso al tuo progetto Google Cloud precedente, ad esempio se le chiavi API originali sono state configurate direttamente tramite il workflow di autenticazione di Merchant Center precedente o se il proprietario del progetto originale ha lasciato la tua organizzazione.
A seconda che tu voglia mantenere il progetto esistente o utilizzarne uno nuovo per l'API Merchant, mantenendo l'API Content for Shopping nel progetto precedente, scegli una delle due opzioni seguenti.
Scegli la strategia del progetto di migrazione
| Scenario | È richiesto l'accesso amministrativo al vecchio progetto? | API da abilitare | Estensione API Content for Shopping obbligatoria per il nuovo progetto? |
|---|---|---|---|
| Opzione 1: mantieni il progetto esistente | Sì (o recupero tramite l'assistenza Google Cloud) | Abilita l'API Merchant nel progetto esistente (l'API Content for Shopping è già abilitata) | No (l'estensione esistente sul vecchio ID progetto rimane valida) |
| Opzione 2: mantieni il progetto precedente per l'API Content for Shopping e utilizza un nuovo progetto per l'API Merchant | No | Attiva l'API Merchant nel nuovo progetto (mantieni attiva l'API Content for Shopping nel vecchio progetto) | No (il vecchio progetto conserva l'estensione; il nuovo progetto chiama solo l'API Merchant) |
Opzione 1: mantieni il progetto Google Cloud esistente
Scegli questa opzione se vuoi utilizzare il tuo 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 disponga di 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 Configura l'autenticazione API da Merchant Center. - Registra il progetto Google Cloud con Merchant Center:
segui i passaggi della guida
Registrati come sviluppatore
per autorizzare le richieste dal tuo progetto esistente e chiama il metodo
registerGcpper collegare il tuo progetto Google Cloud esistente al tuo account Merchant Center principale. Le chiavi dei service account esistenti e l'estensione 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 la tua integrazione legacy dell'API Content for Shopping è già in esecuzione con credenziali valide e un'estensione approvata nel tuo vecchio progetto Google Cloud e vuoi creare la tua nuova integrazione dell'API Merchant in un progetto Google Cloud separato e dedicato:
- Mantieni l'integrazione dell'API Content for Shopping nel vecchio progetto cloud: lascia i flussi di lavoro e le credenziali dell'API Content for Shopping esistenti in esecuzione nel vecchio progetto Google Cloud. Se la tua richiesta di estensione per il vecchio ID progetto è stata approvata, l'integrazione attuale dell'API Content for Shopping continuerà a funzionare fino alla scadenza estesa.
- Crea un nuovo progetto Google Cloud esclusivamente per l'API Merchant: crea un nuovo progetto Google Cloud, attiva
merchantapi.googleapis.come crea le credenziali (un service account o un ID client OAuth 2.0) per i nuovi workload dell'API Merchant. - Registra il nuovo progetto: segui i passaggi descritti in Registrati come sviluppatore per autorizzare le richieste dal nuovo progetto e chiama il metodo
registerGcpcon un indirizzo email di contatto dello sviluppatore valido. Gli indirizzi email dei service account (che terminano con.gserviceaccount.com) non possono essere utilizzati comedeveloperEmail. - Esegui la migrazione dei workload in modo incrementale: sposta gradualmente le chiamate API dal vecchio progetto API Content for Shopping al nuovo progetto 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 una volta completata la migrazione.
Caso speciale: perdita dell'accesso al vecchio progetto Google Cloud prima del completamento della migrazione
Poiché l'API Content for Shopping è stata ritirata, non è più elencata nella libreria API di Google Cloud e non può essere abilitata nei progetti Google Cloud appena creati. Di conseguenza, non puoi spostare autonomamente i workload esistenti dell'API Content for Shopping in un nuovo progetto Google Cloud.
Se non riesci più a effettuare chiamate all'API Content for Shopping dal tuo vecchio progetto (ad esempio, a causa di credenziali revocate o accesso al progetto non recuperabile):
- Contatta l'assistenza Google Cloud per recuperare l'accesso al tuo progetto Google Cloud esistente (Opzione 1) oppure
- Segui l'Opzione 2 per creare e registrare un nuovo progetto Google Cloud ed eseguire la migrazione dei workflow interessati direttamente all'API Merchant. Se riscontri un problema critico che blocca la migrazione, contatta l'assistenza dell'API Merchant.
Passaggi successivi
- Scopri di più sui requisiti di registrazione degli sviluppatori in Registrati come sviluppatore e nelle Domande frequenti sulla registrazione degli sviluppatori.
- Scopri come si comportano le credenziali legacy in Configura l'autenticazione API da Merchant Center.
- Pianifica l'implementazione delle sub-API con Inizia la migrazione.
- Per informazioni dettagliate sull'accesso esteso all'API Content for Shopping, consulta Richiedi un'estensione della migrazione.