Aby korzystać z interfejsu Merchant API, musisz połączyć projekt w chmurze Google Cloud z podstawowym kontem Merchant Center, przeprowadzając rejestrację programisty. W trakcie cyklu życia integracji może być konieczna zmiana identyfikatora projektu Google Cloud powiązanego z kontem Merchant Center, zarządzanie wieloma projektami w różnych środowiskach lub przeniesienie projektów podczas migracji z Content API for Shopping.
Z tego przewodnika dowiesz się, jak:
- Zmień lub obróć identyfikator projektu Google Cloud dla istniejącej integracji z interfejsem Merchant API bez przestojów.
- Wyrejestruj projekt Google Cloud z jednego konta Merchant Center i zarejestruj go na innym koncie Merchant Center.
- Wybierz i zastosuj odpowiednią strategię przenoszenia projektu Google Cloud, jeśli przechodzisz z Content API for Shopping na 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 się jako deweloper.
Najważniejsze zasady i ograniczenia
Podczas planowania zmian w projektach Google Cloud pamiętaj o tych zasadach:
- Rejestracja projektu w modelu jeden do wielu: z jednym podstawowym kontem Merchant Center można jednocześnie zarejestrować wiele projektów Google Cloud. Każdy projekt Google Cloud może być jednak zarejestrowany tylko na jednym podstawowym koncie Merchant Center. Próba zarejestrowania projektu, który jest już połączony z innym kontem Merchant Center, zwraca błąd
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 dotyczące wyłączenia Content API for Shopping są powiązane z konkretnym projektem: jeśli otrzymasz zgodę na rozszerzony dostęp do Content API for Shopping, będzie on dotyczyć tylko konkretnego identyfikatora projektu Google Cloud podanego w Twojej prośbie. Rozszerzenia nie są automatycznie przenoszone do nowych projektów Google Cloud.
Zmienianie identyfikatora projektu Google Cloud na koncie Merchant API
Jeśli korzystasz już z interfejsu Merchant API i musisz przełączyć integrację na nowy projekt w chmurze Google Cloud, na przykład z powodu restrukturyzacji organizacji, zasad rotacji danych logowania lub utraty dostępu administracyjnego do starszego projektu, możesz przenieść projekty bez przestojów. Konto Merchant Center obsługuje jednocześnie wiele zarejestrowanych projektów Google Cloud, więc możesz zarejestrować nowy projekt przed wycofaniem starego.
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 Google Cloud.
- Włącz interfejs Merchant API (
merchantapi.googleapis.com) w nowym projekcie. Zobacz sekcję Włączanie interfejsu Merchant API w artykule Tworzenie projektu w chmurze Google. - Utwórz dane uwierzytelniające (konto usługi lub identyfikator klienta OAuth 2.0) w nowym projekcie Google Cloud.
- Dodaj adres e-mail używany do uwierzytelniania (np. adres e-mail nowego konta usługi) jako użytkownika z rolą
ADMINna swoim podstawowym 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 podstawowym kontem Merchant Center. Szczegółowe instrukcje znajdziesz w sekcji Wywołanie rejestracji w artykule Rejestrowanie konta dewelopera.
Krok 3. Sprawdź zarejestrowane projekty Google Cloud
Aby sprawdzić, czy zarówno dotychczasowe, jak i nowe projekty w chmurze Google Cloud są połączone z kontem Merchant Center, wywołaj metodę accounts.developerRegistration.getDeveloperRegistration:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
Zastąp te elementy:
ACCOUNT_ID: Twój identyfikator w Merchant Center,ACCESS_TOKEN: token autoryzacji do wywołania interfejsu API.
Odpowiedź zwraca zasób DeveloperRegistration z numerycznymi numerami projektów Google Cloud wszystkich połączonych projektów w chmurze w polu gcpIds:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
Możesz też sprawdzić, na którym koncie Merchant Center jest zarejestrowany wywołujący projekt w chmurze Google Cloud, wywołując metodę accounts.developerRegistration.getAccountForGcpRegistration:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Zastąp te elementy:
ACCESS_TOKEN: token autoryzacji wygenerowany przy użyciu 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, zadania są przenoszone 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 do starego projektu Google Cloud i wywołując metodę
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
Zastąp te elementy:
ACCOUNT_ID: Twój identyfikator w Merchant Center,OLD_PROJECT_ACCESS_TOKEN: token autoryzacji ze starego projektu w chmurze Google, który umożliwia wywołanie 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 przypisywanie zarejestrowanego projektu Google Cloud do innego konta Merchant Center
Projekt Google Cloud może być zarejestrowany tylko na jednym podstawowym koncie Merchant Center naraz. Aby przypisać istniejący projekt w chmurze 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 kwestie:
- Uwierzytelnij się za pomocą danych logowania z projektu Google Cloud, który ma dostęp do
OLD_ACCOUNT_ID, i wywołajunregisterGcpwaccounts/OLD_ACCOUNT_ID/developerRegistration. - Sprawdź, czy tożsamość uwierzytelniająca ma rolę
ADMINwNEW_ACCOUNT_IDi czyNEW_ACCOUNT_IDma zweryfikowaną witrynę. - Wywołaj
registerGcpnaaccounts/NEW_ACCOUNT_ID/developerRegistration, używając danych logowania z tego samego projektu Google Cloud. Jeśli w usłudzeNEW_ACCOUNT_IDnie ma jeszcze użytkownika z roląAPI_DEVELOPER, podaj prawidłowy adres e-mail użytkownika w polu żądaniadeveloperEmail. Adresy e-mail kont usługi kończące się na.gserviceaccount.comnie mogą być używane jakodeveloperEmail.
Przenoszenie projektów Google Cloud podczas migracji z Content API for Shopping
Podczas migracji z Content API for Shopping na Merchant API możesz napotkać ograniczenia dostępu do starszego projektu w chmurze Google Cloud, na przykład jeśli oryginalne klucze interfejsu API zostały skonfigurowane bezpośrednio w starszym procesie uwierzytelniania Merchant Center lub jeśli pierwotny właściciel projektu opuścił organizację.
W zależności od tego, czy chcesz zachować istniejący projekt, czy użyć nowego projektu dla Merchant API, zachowując Content API for Shopping w starym projekcie, wybierz jedną z tych 2 opcji.
Wybór strategii 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 za pomocą zespołu pomocy Google Cloud) | Włączanie interfejsu Merchant API w istniejącym projekcie (interfejs Content API for Shopping jest już włączony) | Nie (istniejące rozszerzenie w starym identyfikatorze projektu pozostaje ważne) |
| Opcja 2. Zachowanie starego projektu dla Content API for Shopping i użycie nowego projektu dla interfejsu Merchant API | Nie | Włącz Merchant API w nowym projekcie (pozostaw Content API for Shopping włączony w starym projekcie). | Nie (stary projekt zachowuje rozszerzenie, nowy projekt wywołuje tylko Merchant API). |
Opcja 1. Zachowaj dotychczasowy projekt Google Cloud
Wybierz tę opcję, jeśli chcesz używać istniejącego projektu Google Cloud zarówno w przypadku Content API for Shopping, jak i Merchant API.
Zanim zaczniesz, potwierdź lub odzyskaj dostęp do dotychczasowego projektu. Zaloguj się w konsoli Google Cloud i sprawdź, czy Twoje konto ma dowolną z tych ról w istniejącym 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 interfejsów API Google Cloud lub za pomocą poleceniagcloud. Szczegółowe instrukcje znajdziesz w artykule Konfigurowanie uwierzytelniania interfejsu API w Merchant Center. - Zarejestruj projekt Google Cloud w Merchant Center:
wykonaj czynności opisane w przewodniku Zarejestruj się jako programista, aby autoryzować żądania z istniejącego projektu, i wywołaj metodę
registerGcp, aby połączyć istniejący projekt Google Cloud z podstawowym 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żywanie starego projektu Google Cloud w przypadku Content API for Shopping i nowego projektu w przypadku 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:
- Zachowanie integracji Content API for Shopping w starym projekcie: pozostaw istniejące przepływy pracy i dane logowania Content API for Shopping w starym projekcie Google Cloud. Jeśli Twoja prośba o przedłużenie terminu dla starego identyfikatora projektu została zatwierdzona, obecna integracja z Content API for Shopping będzie 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) dla nowych zadań Merchant API. - Zarejestruj nowy projekt: wykonaj czynności opisane w artykule Rejestrowanie konta dewelopera, aby autoryzować żądania z nowego projektu i wywołać metodę
registerGcpz prawidłowym kontaktowym adresem e-mail dewelopera. Adresy e-mail kont usługi (kończące się na.gserviceaccount.com) nie mogą być używane jakodeveloperEmail. - Stopniowo przenoś zadania: stopniowo przenoś wywołania interfejsu API ze starego projektu Content API for Shopping do nowego projektu Merchant API przed zaplanowaną datą wycofania Content API for Shopping (lub przed wygaśnięciem zatwierdzonego rozszerzenia) i wycofaj stary projekt po zakończeniu migracji.
Przypadek szczególny: utrata dostępu do starego projektu w chmurze Google Cloud przed zakończeniem migracji
Interfejs Content API for Shopping został wycofany, więc nie jest już dostępny w bibliotece interfejsów Google Cloud API i nie można go włączyć w nowo utworzonych projektach w chmurze Google Cloud. W związku z tym nie możesz samodzielnie przenieść istniejących zadań 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 unieważnienia danych logowania lub utraty dostępu do projektu):
- Skontaktuj się z zespołem pomocy Google Cloud, aby odzyskać dostęp do dotychczasowego projektu Google Cloud (opcja 1).
- Wykonaj czynności opisane w sekcji Opcja 2, aby utworzyć i zarejestrować nowy projekt w chmurze Google Cloud i przenieść odpowiednie przepływy pracy bezpośrednio do interfejsu Merchant API. Jeśli napotkasz krytyczny problem uniemożliwiający migrację, skontaktuj się z zespołem pomocy Merchant API.
Dalsze kroki
- Więcej informacji o wymaganiach dotyczących rejestracji dewelopera znajdziesz w artykule Rejestrowanie konta dewelopera i w najczęstszych pytaniach na temat rejestracji dewelopera.
- Więcej informacji o tym, jak działają starsze dane logowania, znajdziesz w artykule Konfigurowanie uwierzytelniania interfejsu API w Merchant Center.
- Zaplanuj wdrożenie podrzędnego interfejsu API, korzystając z artykułu Rozpocznij migrację.
- Szczegółowe informacje o rozszerzonym dostępie do Content API for Shopping znajdziesz w artykule Prośba o przedłużenie migracji.