Merchant API'yi kullanmak için Google Cloud projenizi geliştirici kaydı aracılığıyla birincil Merchant Center hesabınıza bağlamanız gerekir. Entegrasyonunuzun yaşam döngüsü boyunca Merchant Center hesabınızla ilişkili Google Cloud projesi kimliğini değiştirmeniz, ortamlar genelinde birden fazla projeyi yönetmeniz veya Content API for Shopping'den geçiş yaparken projeleri taşımanız gerekebilir.
Bu kılavuzda aşağıdakilerin nasıl yapılacağı açıklanmaktadır:
- Mevcut bir Merchant API entegrasyonu için Google Cloud proje kimliğini kesinti olmadan değiştirin veya rotasyona tabi tutun.
- Bir Google Cloud projesinin kaydını bir Merchant Center hesabından kaldırıp farklı bir Merchant Center hesabına kaydetme
- Content API for Shopping'den Merchant API'ye geçiş yapıyorsanız doğru Google Cloud projesi geçiş stratejisini seçip uygulayın.
Ön koşullar
Google Cloud projelerini yönetmeden veya geçirmeden önce geliştirici kaydı ön koşullarını karşıladığınızı doğrulayın. Daha fazla bilgi için Geliştirici olarak kaydolma kılavuzunun Ön koşullar bölümünü inceleyin.
Temel kurallar ve sınırlamalar
Google Cloud projelerinizde değişiklik planlarken aşağıdaki kuralları göz önünde bulundurun:
- Bire çok proje kaydı: Tek bir birincil Merchant Center hesabına aynı anda birden fazla Google Cloud projesi kaydedilebilir. Ancak her Google Cloud projesi, aynı anda yalnızca bir birincil Merchant Center hesabına kaydedilebilir. Başka bir Merchant Center hesabına bağlı bir projeyi kaydetmeye çalışırsanız
DUPLICATE_PROJECT_REGISTRATIONnedeniyleALREADY_EXISTS(409 Conflict) hatası alırsınız. - Proje sahipliği gizliliği: Güvenlik ve gizlilik nedeniyle Google Alışveriş ve Merchant API Destek Ekibi, Google Cloud projesinin sahibinin veya yöneticisinin e-posta adreslerini paylaşamaz. Bir projeye erişiminizi kaybederseniz Google Cloud Destek Ekibi ile iletişime geçin.
- Content API for Shopping'in kullanımdan kaldırılmasıyla ilgili uzatmalar projeye özeldir: Content API for Shopping için uzatılmış erişim onayı aldıysanız bu uzatma yalnızca isteğinizde gönderilen belirli Google Cloud proje kimliği için geçerlidir. Uzantılar yeni Google Cloud projelerine otomatik olarak aktarılmaz.
Merchant API hesabı için Google Cloud proje kimliğini değiştirme
Merchant API'yi zaten kullanıyorsanız ve entegrasyonunuzu yeni bir Google Cloud projesine geçirmeniz gerekiyorsa (ör. kuruluşun yeniden yapılandırılması, kimlik doğrulama bilgileri değişim döngüsü politikaları veya eski bir projeye yönetim erişiminin kaybedilmesi nedeniyle) projeleri kesinti olmadan geçirebilirsiniz. Merchant Center hesapları aynı anda birden fazla kayıtlı Google Cloud projesini desteklediğinden, eski projeyi kullanımdan kaldırmadan önce yeni projeyi kaydedebilirsiniz.
1. adım: Yeni Google Cloud projenizi oluşturun ve yapılandırın
- Google Cloud Console'da yeni bir proje oluşturun. Ayrıntılı talimatlar için Google Cloud projesi oluşturma başlıklı makaleyi inceleyin.
- Merchant API'yi (
merchantapi.googleapis.com) yeni projede etkinleştirin. Google Cloud projesi oluşturma bölümündeki Merchant API'yi etkinleştirme bölümüne bakın. - Yeni Google Cloud projesinde kimlik doğrulama bilgileri (hizmet hesabı veya OAuth 2.0 istemci kimliği) oluşturun.
- Kimlik doğrulama e-posta adresini (ör. yeni hizmet hesabı e-posta adresi), birincil Merchant Center hesabınıza
ADMINrolüne sahip bir kullanıcı olarak ekleyin.
2. adım: Yeni Google Cloud projesini kaydetme
Yeni Google Cloud projenizdeki kimlik bilgilerini kullanarak kimlik doğrulaması yapın ve yeni projeyi birincil Merchant Center hesabınıza bağlamak için accounts.developerRegistration.registerGcp yöntemini çağırın. Ayrıntılı talimatlar için Geliştirici olarak kaydolma başlıklı makalenin Kayıt görüşmesi yapma bölümüne bakın.
3. adım: Kayıtlı Google Cloud projelerinizi doğrulayın
Hem mevcut hem de yeni Google Cloud projelerinizin Merchant Center hesabınıza bağlı olduğunu onaylamak için accounts.developerRegistration.getDeveloperRegistration yöntemini çağırın:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
Aşağıdakini değiştirin:
ACCOUNT_ID: Merchant Center kimliğinizACCESS_TOKEN: API çağrısı yapmak için yetkilendirme jetonu
Yanıt, gcpIds alanında tüm bağlı projelerin sayısal Google Cloud proje numaralarını içeren DeveloperRegistration kaynağını döndürür:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
Ayrıca, aşağıdaki accounts.developerRegistration.getAccountForGcpRegistration yöntemini çağırarak arayan Google Cloud projesinin hangi Merchant Center hesabına kaydedildiğini de doğrulayabilirsiniz:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Aşağıdakini değiştirin:
ACCESS_TOKEN: Kontrol etmek istediğiniz Google Cloud projesinin kimlik bilgileri kullanılarak oluşturulan yetkilendirme jetonu
4. adım: Trafiği değiştirin ve eski Google Cloud projesinin kaydını iptal edin
- Uygulama yapılandırmanızı, yeni Google Cloud projenizdeki kimlik bilgilerini kullanacak şekilde güncelleyin. Her iki proje de kayıtlı olduğundan iş yükleriniz kesintisiz olarak taşınır.
- Tüm trafik yeni projeyi kullanmaya başladıktan sonra, eski Google Cloud proje kimlik bilgileriyle kimlik doğrulama yapıp
accounts.developerRegistration.unregisterGcpyöntemini çağırarak eski proje bağlantısını isteğe bağlı olarak kaldırabilirsiniz:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN
Aşağıdakini değiştirin:
ACCOUNT_ID: Merchant Center kimliğinizOLD_PROJECT_ACCESS_TOKEN: API çağrısı yapmak için eski Google Cloud projesinden alınan yetkilendirme jetonu
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"
Kayıtlı bir Google Cloud projesini farklı bir Merchant Center hesabına yeniden atama
Google Cloud projesi aynı anda yalnızca birincil bir Merchant Center hesabına kaydedilebildiğinden, mevcut bir projeyi bir Merchant Center hesabından (OLD_ACCOUNT_ID) diğerine (NEW_ACCOUNT_ID) yeniden atamak için aşağıdaki adımları uygulayın. Projenizi hangi Merchant Center hesabına kaydedeceğinizi seçmeyle ilgili yönergeler için Önemli hususlar başlıklı bölümü inceleyin:
OLD_ACCOUNT_IDerişimi olan Google Cloud projesinin kimlik bilgilerini kullanarak kimlik doğrulaması yapın veaccounts/OLD_ACCOUNT_ID/developerRegistrationüzerindeunregisterGcpyöntemini çağırın.- Kimlik doğrulama kimliğinin
NEW_ACCOUNT_IDüzerindeADMINrolüne sahip olduğunu veNEW_ACCOUNT_IDkimliğinin doğrulanmış bir web sitesi olduğunu doğrulayın. - Aynı Google Cloud projesindeki kimlik bilgilerini kullanarak
accounts/NEW_ACCOUNT_ID/developerRegistrationüzerinderegisterGcpçağrısı yapın.NEW_ACCOUNT_IDuygulamasında henüzAPI_DEVELOPERrolüne sahip bir kullanıcı yoksadeveloperEmailistek alanına geçerli bir kullanıcı e-posta adresi girin..gserviceaccount.comile biten hizmet hesabı e-posta adreslerideveloperEmailolarak kullanılamaz.
Content API for Shopping'den geçiş yaparken Google Cloud projelerini taşıma
Content API for Shopping'den Merchant API'ye geçiş yaparken eski Google Cloud projenizde erişim sınırlamalarıyla karşılaşabilirsiniz. Örneğin, orijinal API anahtarlarınız doğrudan eski Merchant Center kimlik doğrulama iş akışı üzerinden yapılandırılmışsa veya orijinal proje sahibi kuruluşunuzdan ayrılmışsa bu durumla karşılaşabilirsiniz.
Mevcut projenizi korumak veya eski projenizde Content API for Shopping'i kullanmaya devam ederken Merchant API için yeni bir proje kullanmak isteyip istemediğinize bağlı olarak aşağıdaki iki seçenekten birini belirleyin.
Taşıma projesi stratejinizi seçme
| Senaryo | Eski projeye yönetici erişimi gerekiyor mu? | Etkinleştirilecek API'ler | Yeni projede Content API for Shopping uzantısı gerekli mi? |
|---|---|---|---|
| 1. seçenek: Mevcut projenizi koruyun | Evet (veya Google Cloud Destek Ekibi aracılığıyla kurtarabilirsiniz) | Mevcut projede Merchant API'yi etkinleştirme (Content API for Shopping zaten etkindir) | Hayır (Eski proje kimliğindeki mevcut uzantı geçerli kalır.) |
| 2. seçenek: Content API for Shopping için eski projeyi kullanmaya devam edin ve Merchant API için yeni bir proje kullanın | Hayır | Yeni projede Merchant API'yi etkinleştirin (eski projede Content API for Shopping'i etkin durumda tutun). | Hayır (Eski proje uzantısını korur, yeni proje yalnızca Merchant API'yi çağırır.) |
1. seçenek: Mevcut Google Cloud projenizi koruyun
Mevcut Google Cloud projenizi hem Content API for Shopping hem de Merchant API için kullanmak istiyorsanız bu seçeneği belirleyin.
Başlamadan önce mevcut projenize erişimi doğrulayın veya kurtarın. Google Cloud Console'da oturum açın ve hesabınızın mevcut projenizde aşağıdaki rollerden herhangi birine sahip olduğunu onaylayın:
- Sahip (
roles/owner), - Düzenleyici (
roles/editor) - Service Usage Yöneticisi (
roles/serviceusage.serviceUsageAdmin)
- Merchant API'yi etkinleştirin:
merchantapi.googleapis.comseçeneğini Google Cloud API Kitaplığı'nda veyagcloudkomutuyla etkinleştirin. Adım adım talimatlar için Merchant Center'dan API kimlik doğrulaması yapılandırma başlıklı makaleyi inceleyin. - Google Cloud projesini Merchant Center'a kaydedin:
Mevcut projenizden gelen istekleri yetkilendirmek için Geliştirici olarak kaydolma kılavuzundaki adımları uygulayın ve mevcut Google Cloud projenizi birincil Merchant Center hesabınıza bağlamak için
registerGcpyöntemini çağırın. Mevcut hizmet hesabı anahtarlarınız ve onaylanmış Content API for Shopping uzantınız değişiklik yapılmadan çalışmaya devam eder.
2. seçenek: Content API for Shopping için eski Google Cloud projesini, Merchant API için yeni bir projeyi kullanma
Eski Content API for Shopping entegrasyonunuz eski Google Cloud projenizde geçerli kimlik bilgileri ve onaylı bir uzantıyla çalışıyorsa ve yeni Merchant API entegrasyonunuzu ayrı, özel bir Google Cloud projesinde oluşturmak istiyorsanız bu seçeneği belirleyin:
- Content API for Shopping entegrasyonunuzu eski projede tutun: Mevcut Content API for Shopping iş akışlarınızı ve kimlik bilgilerinizi eski Google Cloud projesinde çalıştırmaya devam edin. Eski proje kimliği için uzatma isteğiniz onaylandıysa mevcut Content API for Shopping entegrasyonunuz, uzatılan son tarih boyunca çalışmaya devam eder.
- Yalnızca Merchant API için yeni bir Google Cloud projesi oluşturun: Yeni bir Google Cloud projesi oluşturun,
merchantapi.googleapis.com'yi etkinleştirin ve yeni Merchant API iş yükleriniz için kimlik bilgileri (bir hizmet hesabı veya OAuth 2.0 istemci kimliği) oluşturun. - Yeni projeyi kaydetme: Yeni projenizden gelen istekleri yetkilendirmek ve
registerGcpyöntemini geçerli bir geliştirici iletişim e-postasıyla çağırmak için Geliştirici olarak kaydolma bölümündeki adımları uygulayın. Hizmet hesabı e-postaları (.gserviceaccount.comile bitenler)developerEmailolarak kullanılamaz. - İş yüklerini kademeli olarak taşıma: API çağrılarını eski Content API for Shopping projenizden yeni Merchant API projenize, Content API for Shopping'in kullanımdan kaldırılma planlanan tarihinden (veya onaylanmış uzatma süreniz sona ermeden) önce kademeli olarak taşıyın ve taşıma işleminiz tamamlandıktan sonra eski projeyi kullanımdan kaldırın.
Özel durum: Taşıma işlemini tamamlamadan önce eski Google Cloud projenize erişimi kaybetme
Content API for Shopping kullanımdan kaldırıldığı için artık Google Cloud API Kitaplığı'nda listelenmez ve yeni oluşturulan Google Cloud projelerinde etkinleştirilemez. Bu nedenle, mevcut Content API for Shopping iş yüklerini yeni bir Google Cloud projesine kendi başınıza taşıyamazsınız.
Eski projenizden Content API for Shopping çağrıları yapamıyorsanız (ör. iptal edilen kimlik bilgileri veya kurtarılamayan proje erişimi nedeniyle):
- Mevcut Google Cloud projenize erişimi kurtarmak için Google Cloud Destek Ekibi ile iletişime geçin (1. seçenek) veya
- Yeni bir Google Cloud projesi oluşturup kaydetmek ve etkilenen iş akışlarını doğrudan Merchant API'ye taşımak için 2. seçeneği uygulayın. Taşıma işlemini engelleyen kritik bir sorunla karşılaşırsanız Merchant API Destek Ekibi ile iletişime geçin.
Sonraki adımlar
- Geliştirici kaydı şartları hakkında daha fazla bilgiyi Geliştirici olarak kaydolma ve Geliştirici kaydıyla ilgili SSS bölümlerinde bulabilirsiniz.
- Merchant Center'dan API kimlik doğrulamasını yapılandırma bölümünde eski kimlik bilgilerinin nasıl davrandığını inceleyin.
- Geçiş yapmaya başlayın bölümünden alt API geçişinizi planlayın.
- Content API for Shopping'e genişletilmiş erişim hakkında ayrıntılı bilgiyi Geçiş için ek süre isteyin başlıklı makalede bulabilirsiniz.