Aby korzystać z Merchant API, musisz połączyć swój projekt w chmurze Google z głównym kontem Merchant Center za pomocą rejestracji dewelopera. W trakcie cyklu życia integracji może być konieczna zmiana identyfikatora projektu Google Cloud powiązanego z kontem Merchant Center, zarządzanie kilkoma projektami w różnych środowiskach lub przenoszenie projektów podczas migracji z Content API for Shopping.
Z tego przewodnika dowiesz się, jak:
- zmienić lub odnowić identyfikator projektu Google Cloud w przypadku istniejącej integracji z Merchant API bez przestoju;
- wyrejestrować projekt Google Cloud z jednego konta Merchant Center i zarejestrować go na innym koncie Merchant Center;
- wybrać i wdrożyć odpowiednią strategię przenoszenia projektu Google Cloud, jeśli migrujesz z Content API for Shopping do Merchant API.
Wymagania wstępne
Zanim zaczniesz zarządzać projektami Google Cloud lub je przenosić, sprawdź, czy spełniasz wymagania wstępne dotyczące rejestracji dewelopera. Więcej informacji znajdziesz w sekcji Wymagania wstępne w przewodniku Rejestrowanie konta dewelopera.
Najważniejsze zasady i ograniczenia
Planując zmiany w projektach w chmurze Google Cloud, pamiętaj o tych zasadach:
- Rejestracja projektu w relacji jeden do wielu: do jednego głównego konta Merchant Center można jednocześnie zarejestrować kilka projektów Google Cloud. Każdy projekt w chmurze Google Cloud może być jednak w danym momencie zarejestrowany tylko na jednym głównym koncie Merchant Center. Próba zarejestrowania projektu, który jest już połączony z innym kontem Merchant Center, spowoduje zwrócenie błędu
ALREADY_EXISTS(409 Conflict) z przyczynąDUPLICATE_PROJECT_REGISTRATION. - Prywatność właściciela projektu: ze względów bezpieczeństwa i ochrony prywatności zespół pomocy Google Shopping i Merchant API nie może ujawnić adresów e-mail właściciela ani administratora projektu w chmurze Google. Jeśli utracisz dostęp do projektu, skontaktuj się z zespołem pomocy Google Cloud.
- Rozszerzenia wyłączające Content API for Shopping są powiązane z projektem: jeśli otrzymasz zgodę na rozszerzony dostęp do Content API for Shopping, rozszerzenie będzie dotyczyć tylko konkretnego identyfikatora projektu Google Cloud przesłanego w Twojej prośbie. Rozszerzenia nie są automatycznie przenoszone do nowych projektów Google Cloud.
Zmiana identyfikatora projektu Google Cloud na koncie Merchant API
Jeśli używasz już Merchant API i musisz przełączyć integrację na nowy projekt w chmurze Google (np. z powodu restrukturyzacji organizacyjnej, rotacji danych logowania lub utraty dostępu administracyjnego do starszego projektu), możesz przenieść projekty bez przestoju. Konto Merchant Center obsługuje jednocześnie kilka zarejestrowanych projektów Google Cloud, więc możesz zarejestrować nowy projekt, zanim wycofasz stary.
Krok 1. Utwórz i skonfiguruj nowy projekt Google Cloud
- Utwórz nowy projekt w konsoli Google Cloud. Szczegółowe instrukcje znajdziesz w artykule Tworzenie projektu w chmurze Google Cloud.
- Włącz Merchant API (
merchantapi.googleapis.com) w nowym projekcie. Zapoznaj się z sekcją Włączanie Merchant API w artykule Tworzenie projektu w chmurze Google Cloud. - Utwórz dane logowania (konto usługi lub identyfikator klienta OAuth 2.0) w nowym projekcie Google Cloud.
- Dodaj adres e-mail uwierzytelniania (np. nowy adres e-mail konta usługi) jako użytkownika z rolą
ADMINna swoim głównym koncie Merchant Center.
Krok 2. Zarejestruj nowy projekt Google Cloud
Uwierzytelnij się za pomocą danych logowania z nowego projektu Google Cloud
i wywołaj metodę
accounts.developerRegistration.registerGcp
, aby połączyć nowy projekt z głównym kontem Merchant Center. Szczegółowe instrukcje znajdziesz w sekcji
Wykonanie wywołania rejestracyjnego
w przewodniku
Rejestrowanie konta dewelopera.
Krok 3. Sprawdź zarejestrowane projekty Google Cloud
Aby potwierdzić, że zarówno dotychczasowy, jak i nowy projekt Google Cloud są
połączone z Twoim kontem Merchant Center, wywołaj
accounts.developerRegistration.getDeveloperRegistration
metodę:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
Zastąp te elementy:
ACCOUNT_ID: identyfikator w Merchant CenterACCESS_TOKEN: token autoryzacji do wywołania interfejsu API
Odpowiedź zwraca zasób
DeveloperRegistration
z numerycznymi identyfikatorami wszystkich połączonych
projektów w chmurze Google Cloud w polu gcpIds:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
Możesz też sprawdzić, na którym koncie Merchant Center zarejestrowany jest wywołujący
projekt w chmurze Google, wywołując
accounts.developerRegistration.getAccountForGcpRegistration
metodę:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Zastąp te elementy:
ACCESS_TOKEN: token autoryzacji wygenerowany na podstawie danych logowania z projektu w chmurze Google Cloud, który chcesz sprawdzić
Krok 4. Przełącz ruch i wyrejestruj stary projekt Google Cloud
- Zaktualizuj konfigurację aplikacji, aby używać danych logowania z nowego projektu Google Cloud. Ponieważ oba projekty są zarejestrowane, Twoje obciążenia przejdą bez zakłóceń.
- Gdy cały ruch będzie korzystać z nowego projektu, możesz opcjonalnie usunąć link do starego
projektu, uwierzytelniając się za pomocą danych logowania starego projektu Google Cloud
i wywołując
accounts.developerRegistration.unregisterGcpmetodę:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN
Zastąp te elementy:
ACCOUNT_ID: identyfikator w Merchant CenterOLD_PROJECT_ACCESS_TOKEN: token autoryzacji ze starego projektu w chmurze Google do wywołania interfejsu 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"
Ponowne przypisanie zarejestrowanego projektu Google Cloud do innego konta Merchant Center
Projekt Google Cloud może być zarejestrowany tylko na jednym głównym
koncie Merchant Center naraz. Aby ponownie przypisać
istniejący projekt z jednego konta Merchant Center (OLD_ACCOUNT_ID) do
innego (NEW_ACCOUNT_ID), wykonaj te czynności. Wskazówki dotyczące wyboru konta Merchant Center,
na którym chcesz zarejestrować projekt, znajdziesz w sekcji
Ważne uwagi:
- Uwierzytelnij się za pomocą danych logowania z projektu w chmurze Google Cloud, który ma dostęp do
OLD_ACCOUNT_IDi wywołaj metodęunregisterGcpw przypadkuaccounts/OLD_ACCOUNT_ID/developerRegistration. - Sprawdź, czy tożsamość uwierzytelniająca ma rolę
ADMINw przypadkuNEW_ACCOUNT_IDoraz czyNEW_ACCOUNT_IDma zweryfikowaną witrynę. - Wywołaj metodę
registerGcpw przypadkuaccounts/NEW_ACCOUNT_ID/developerRegistration, używając danych logowania z tego samego projektu Google Cloud. JeśliNEW_ACCOUNT_IDnie ma jeszcze użytkownika z roląAPI_DEVELOPER, przekaż prawidłowy adres e-mail użytkownika w polu żądaniadeveloperEmail. Adresów e-mail kont usługi kończących się na.gserviceaccount.comnie można używać jakodeveloperEmail.
Przenoszenie projektów Google Cloud podczas migracji z Content API for Shopping
Podczas migracji z Content API for Shopping do Merchant API możesz napotkać ograniczenia dostępu do starszego projektu Google Cloud. Może się tak zdarzyć np. wtedy, gdy pierwotne klucze API zostały skonfigurowane bezpośrednio za pomocą starszego procesu uwierzytelniania w Merchant Center lub gdy pierwotny właściciel projektu opuścił Twoją organizację.
W zależności od tego, czy chcesz zachować dotychczasowy projekt, czy używać nowego projektu na potrzeby Merchant API, zachowując Content API for Shopping w starym projekcie, wybierz jedną z tych 2 opcji.
Wybierz strategię projektu migracji
| Scenariusz | Czy wymagany jest dostęp administracyjny do starego projektu? | Interfejsy API do włączenia | Czy w nowym projekcie wymagane jest rozszerzenie Content API for Shopping? |
|---|---|---|---|
| Opcja 1. Zachowaj dotychczasowy projekt | Tak (lub odzyskaj dostęp za pomocą zespołu pomocy Google Cloud) | Włącz Merchant API w dotychczasowym projekcie (Content API for Shopping jest już włączony) | Nie (dotychczasowe rozszerzenie w przypadku starego identyfikatora projektu pozostaje ważne) |
| Opcja 2. Zachowaj stary projekt na potrzeby Content API for Shopping i używaj nowego projektu na potrzeby Merchant API | Nie | Włącz Merchant API w nowym projekcie (Content API for Shopping pozostaw włączony w starym projekcie) | Nie (stary projekt zachowuje swoje rozszerzenie, a nowy projekt wywołuje tylko Merchant API) |
Opcja 1. Zachowaj dotychczasowy projekt w chmurze Google Cloud
Wybierz tę opcję, jeśli chcesz używać dotychczasowego projektu Google Cloud zarówno na potrzeby Content API for Shopping, jak i Merchant API.
Zanim zaczniesz, sprawdź lub odzyskaj dostęp do dotychczasowego projektu. Zaloguj się w konsoli Google Cloud i sprawdź, czy Twoje konto ma którąkolwiek z tych ról w dotychczasowym projekcie:
- Właściciel (
roles/owner), - Edytujący (
roles/editor) - Administrator korzystania z usług (
roles/serviceusage.serviceUsageAdmin)
- Włącz Merchant API: włącz
merchantapi.googleapis.comw bibliotece Google Cloud API lub za pomocą poleceniagcloud. Szczegółowe instrukcje znajdziesz w artykule Konfigurowanie uwierzytelniania interfejsu API z poziomu Merchant Center. - Zarejestruj projekt Google Cloud w Merchant Center:
wykonaj czynności opisane w
przewodniku Rejestrowanie konta dewelopera
, aby autoryzować żądania z dotychczasowego projektu w chmurze, i wywołaj metodę
registerGcp, aby połączyć dotychczasowy projekt Google Cloud z głównym kontem Merchant Center. Dotychczasowe klucze konta usługi i zatwierdzone rozszerzenie Content API for Shopping będą nadal działać bez zmian.
Opcja 2. Używaj starego projektu w chmurze Google na potrzeby Content API for Shopping i nowego projektu na potrzeby Merchant API
Wybierz tę opcję, jeśli starsza integracja z Content API for Shopping działa już z prawidłowymi danymi logowania i zatwierdzonym rozszerzeniem w starym projekcie w chmurze Google, a nową integrację z Merchant API chcesz utworzyć w osobnym, dedykowanym projekcie w chmurze Google:
- Zachowaj integrację z Content API for Shopping w starym projekcie: pozostaw dotychczasowe procesy i dane logowania Content API for Shopping działające w starym projekcie Google Cloud. Jeśli Twoja prośba o rozszerzenie w przypadku starego identyfikatora projektu została zatwierdzona, dotychczasowa integracja z Content API for Shopping będzie nadal działać do przedłużonego terminu.
- Utwórz nowy projekt Google Cloud wyłącznie na potrzeby Merchant API: utwórz nowy projekt Google Cloud, włącz
merchantapi.googleapis.comi utwórz dane logowania (konto usługi lub identyfikator klienta OAuth 2.0) na potrzeby nowych obciążeń Merchant API. - Zarejestruj nowy projekt: wykonaj czynności opisane w
Rejestrowanie konta dewelopera, aby
autoryzować żądania z nowego projektu, i wywołaj metodę
registerGcpz prawidłowym adresem e-mail kontaktu dewelopera. Adresów e-mail kont usługi (kończących się na.gserviceaccount.com) nie można używać jakodeveloperEmail. - Migruj obciążenia stopniowo: stopniowo przenoś wywołania interfejsu API ze starego projektu Content API for Shopping do nowego projektu Merchant API, przed planowaną datą wyłączenia Content API for Shopping (lub przed wygaśnięciem zatwierdzonego rozszerzenia) i wycofaj stary projekt po zakończeniu migracji.
Przypadek specjalny: utrata dostępu do starego projektu w chmurze Google Cloud przed zakończeniem migracji
Content API for Shopping jest wycofywany, dlatego nie jest już dostępny w bibliotece Google Cloud API i nie można go włączyć w nowo utworzonych projektach w chmurze Google. W związku z tym nie możesz samodzielnie przenieść dotychczasowych obciążeń Content API for Shopping do nowego projektu Google Cloud.
Jeśli nie możesz już wykonywać wywołań Content API for Shopping ze starego projektu (np. z powodu cofnięcia danych logowania lub niemożliwego do odzyskania dostępu do projektu):
- skontaktuj się z zespołem pomocy Google Cloud aby odzyskać dostęp do dotychczasowego projektu Google Cloud (opcja 1), lub
- postępuj zgodnie z instrukcjami w opcji 2, aby utworzyć i zarejestrować nowy projekt w chmurze Google Cloud oraz przenieść obciążenia, których dotyczy problem, bezpośrednio do Merchant API. Jeśli napotkasz poważny problem blokujący migrację, skontaktuj się z zespołem pomocy Merchant API.
Dalsze kroki
- Więcej informacji o wymaganiach dotyczących rejestracji dewelopera znajdziesz w przewodniku Rejestrowanie konta dewelopera i w sekcji Najczęstsze pytania dotyczące rejestracji dewelopera.
- Sprawdź, jak działają starsze dane logowania, w artykule Konfigurowanie uwierzytelniania interfejsu API z poziomu Merchant Center.
- Zaplanuj wdrożenie interfejsu API, korzystając z przewodnika Rozpoczęcie migracji.
- Szczegółowe informacje o rozszerzonym dostępie do Content API for Shopping znajdziesz w artykule Prośba o rozszerzenie migracji.