Merchant API का इस्तेमाल करने के लिए, आपको डेवलपर के तौर पर रजिस्टर करके, अपने Google Cloud प्रोजेक्ट को अपने मुख्य Merchant Center खाते से लिंक करना होगा. इंटिग्रेशन की लाइफ़साइकल के दौरान, आपको अपने Merchant Center खाते से जुड़े Google Cloud प्रोजेक्ट आईडी को बदलने की ज़रूरत पड़ सकती है. इसके अलावा, आपको अलग-अलग एनवायरमेंट में कई प्रोजेक्ट मैनेज करने या Content API for Shopping से माइग्रेट करते समय प्रोजेक्ट ट्रांज़िशन करने की ज़रूरत पड़ सकती है.
इस गाइड में, इन कामों को करने का तरीका बताया गया है:
- Merchant API के मौजूदा इंटिग्रेशन के लिए, Google Cloud प्रोजेक्ट आईडी को बिना किसी डाउनटाइम के बदलना या रोटेट करना.
- किसी Google Cloud प्रोजेक्ट को एक Merchant Center खाते से अनलिंक करके, उसे दूसरे Merchant Center खाते से लिंक करना.
- अगर Content API for Shopping से Merchant API पर माइग्रेट किया जा रहा है, तो Google Cloud प्रोजेक्ट को ट्रांज़िशन करने की सही रणनीति चुनें और उसे लागू करें.
ज़रूरी शर्तें
Google Cloud प्रोजेक्ट को मैनेज करने या ट्रांज़िशन करने से पहले, पुष्टि करें कि आपने डेवलपर के तौर पर रजिस्टर करने की ज़रूरी शर्तें पूरी की हैं. ज़्यादा जानकारी के लिए, डेवलपर के तौर पर रजिस्टर करें गाइड का ज़रूरी शर्तें सेक्शन देखें.
मुख्य नियम और सीमाएं
अपने Google Cloud प्रोजेक्ट में बदलाव करते समय, इन नियमों का ध्यान रखें:
- वन-टू-मेनी प्रोजेक्ट रजिस्ट्रेशन: Merchant Center के एक प्राइमरी खाते में, Google Cloud के कई क्लाउड प्रोजेक्ट एक साथ रजिस्टर किए जा सकते हैं. हालांकि, हर Google Cloud प्रोजेक्ट को किसी भी समय सिर्फ़ एक मुख्य Merchant Center खाते के लिए रजिस्टर किया जा सकता है. किसी ऐसे प्रोजेक्ट को रजिस्टर करने की कोशिश करने पर जो पहले से ही किसी दूसरे Merchant Center खाते से लिंक है,
ALREADY_EXISTS(409 Conflict) गड़बड़ी का मैसेज दिखता है. साथ ही, गड़बड़ी की वजहDUPLICATE_PROJECT_REGISTRATIONदिखती है. - प्रोजेक्ट के मालिकाना हक की निजता: सुरक्षा और निजता की वजहों से, Google Shopping और Merchant API की सहायता टीम, Google Cloud प्रोजेक्ट के मालिक या एडमिन के ईमेल पते ज़ाहिर नहीं कर सकती. अगर आपके पास किसी प्रोजेक्ट का ऐक्सेस नहीं है, तो Google Cloud की सहायता टीम से संपर्क करें.
- Content API for Shopping को बंद करने की समयसीमा में मिलने वाले एक्सटेंशन, प्रोजेक्ट के हिसाब से तय होते हैं: अगर आपको Content API for Shopping के लिए, एक्सटेंशन के तौर पर ऐक्सेस की मंज़ूरी मिली है, तो वह एक्सटेंशन सिर्फ़ उस Google Cloud प्रोजेक्ट आईडी पर लागू होगा जिसे आपने अपने अनुरोध में सबमिट किया है. एक्सटेंशन, Google Cloud के नए प्रोजेक्ट में अपने-आप ट्रांसफ़र नहीं होते.
Merchant API खाते के लिए, Google Cloud प्रोजेक्ट आईडी बदलना
अगर पहले से Merchant API का इस्तेमाल किया जा रहा है और आपको अपने इंटिग्रेशन को किसी नए Google Cloud प्रोजेक्ट पर स्विच करना है, तो डाउनटाइम के बिना प्रोजेक्ट ट्रांज़िशन किया जा सकता है. ऐसा संगठन के पुनर्गठन, समय-समय पर पुष्टि से जुड़े क्रेडेंशियल बदलने की नीतियों या किसी पुराने प्रोजेक्ट के एडमिन के तौर पर ऐक्सेस खो जाने की वजह से हो सकता है. Merchant Center खाते में, एक साथ कई Google Cloud प्रोजेक्ट रजिस्टर किए जा सकते हैं. इसलिए, पुराने प्रोजेक्ट को बंद करने से पहले, नए प्रोजेक्ट को रजिस्टर किया जा सकता है.
पहला चरण: नया Google Cloud प्रोजेक्ट बनाना और उसे कॉन्फ़िगर करना
- Google Cloud Console में एक नया प्रोजेक्ट बनाएं. ज़्यादा जानकारी के लिए, Google Cloud प्रोजेक्ट बनाना लेख पढ़ें.
- Merchant API (
merchantapi.googleapis.com) को नए प्रोजेक्ट में चालू करें. Google Cloud प्रोजेक्ट बनाएं में जाकर, Merchant API चालू करें सेक्शन देखें. - नए Google क्लाउड प्रोजेक्ट में, पुष्टि करने वाले क्रेडेंशियल (सेवा खाता या OAuth 2.0 क्लाइंट आईडी) बनाएं.
- पुष्टि करने वाले ईमेल पते (जैसे, नए सेवा खाते का ईमेल पता) को अपने मुख्य Merchant Center खाते में
ADMINकी भूमिका वाले उपयोगकर्ता के तौर पर जोड़ें.
दूसरा चरण: नए Google Cloud प्रोजेक्ट को रजिस्टर करना
अपने नए Google Cloud प्रोजेक्ट के क्रेडेंशियल का इस्तेमाल करके, पुष्टि करें. इसके बाद, नए प्रोजेक्ट को अपने मुख्य Merchant Center खाते से लिंक करने के लिए, accounts.developerRegistration.registerGcp तरीके को कॉल करें. ज़्यादा जानकारी के लिए, डेवलपर के तौर पर रजिस्टर करें सेक्शन में जाकर, रजिस्ट्रेशन कॉल करें देखें.
तीसरा चरण: रजिस्टर किए गए Google Cloud प्रोजेक्ट की पुष्टि करना
यह पुष्टि करने के लिए कि आपके मौजूदा और नए, दोनों Google Cloud प्रोजेक्ट आपके Merchant Center खाते से लिंक हैं, accounts.developerRegistration.getDeveloperRegistration तरीके को कॉल करें:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
इनकी जगह ये डालें:
ACCOUNT_ID: आपके Merchant Center का आईडीACCESS_TOKEN: एपीआई कॉल करने के लिए अनुमति टोकन
जवाब में, DeveloperRegistration संसाधन के साथ-साथ, gcpIds फ़ील्ड में लिंक किए गए सभी प्रोजेक्ट के Google Cloud प्रोजेक्ट नंबर दिखते हैं:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
accounts.developerRegistration.getAccountForGcpRegistration तरीके को कॉल करके, यह भी पुष्टि की जा सकती है कि कॉल करने वाला Google क्लाउड प्रोजेक्ट, किस Merchant Center खाते के साथ रजिस्टर किया गया है:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
इनकी जगह ये डालें:
ACCESS_TOKEN: अनुमति देने वाला टोकन, जिसे उस Google Cloud प्रोजेक्ट के क्रेडेंशियल का इस्तेमाल करके जनरेट किया गया है जिसकी आपको जांच करनी है
चौथा चरण: ट्रैफ़िक को स्विच करना और पुराने Google Cloud प्रोजेक्ट का रजिस्ट्रेशन रद्द करना
- अपने ऐप्लिकेशन के कॉन्फ़िगरेशन को अपडेट करें, ताकि नए Google Cloud प्रोजेक्ट के क्रेडेंशियल इस्तेमाल किए जा सकें. दोनों प्रोजेक्ट रजिस्टर होने की वजह से, आपके वर्कलोड बिना किसी रुकावट के ट्रांज़िशन हो जाते हैं.
- जब सारा ट्रैफ़िक नए प्रोजेक्ट का इस्तेमाल करने लगे, तब आपके पास पुराने प्रोजेक्ट के लिंक को हटाने का विकल्प होता है. इसके लिए, पुराने Google Cloud प्रोजेक्ट के क्रेडेंशियल से पुष्टि करें और
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
इनकी जगह ये डालें:
ACCOUNT_ID: आपके Merchant Center का आईडीOLD_PROJECT_ACCESS_TOKEN: एपीआई कॉल करने के लिए, पुराने Google Cloud प्रोजेक्ट से मिला अनुमति टोकन
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"
रजिस्टर किए गए Google Cloud प्रोजेक्ट को किसी दूसरे Merchant Center खाते को फिर से असाइन करना
Google Cloud प्रोजेक्ट को एक समय में सिर्फ़ एक प्राइमरी Merchant Center खाते में रजिस्टर किया जा सकता है. किसी मौजूदा प्रोजेक्ट को एक Merchant Center खाते (OLD_ACCOUNT_ID) से दूसरे खाते (NEW_ACCOUNT_ID) में फिर से असाइन करने के लिए, यह तरीका अपनाएं. अपने प्रोजेक्ट को किस Merchant Center खाते में रजिस्टर करना है, इस बारे में दिशा-निर्देश पाने के लिए, अहम बातें देखें:
- उस Google Cloud प्रोजेक्ट के क्रेडेंशियल का इस्तेमाल करके पुष्टि करें जिसके पास
OLD_ACCOUNT_IDका ऐक्सेस है. इसके बाद,accounts/OLD_ACCOUNT_ID/developerRegistrationपरunregisterGcpको कॉल करें. - पुष्टि करें कि पहचान की पुष्टि करने वाले व्यक्ति के पास
NEW_ACCOUNT_IDपरADMINकी भूमिका हो. साथ ही,NEW_ACCOUNT_IDकी वेबसाइट की पुष्टि हो चुकी हो. - उसी Google Cloud प्रोजेक्ट के क्रेडेंशियल का इस्तेमाल करके,
accounts/NEW_ACCOUNT_ID/developerRegistrationपरregisterGcpको कॉल करें. अगरNEW_ACCOUNT_IDमें अब तकAPI_DEVELOPERकी भूमिका वाला कोई उपयोगकर्ता नहीं है, तोdeveloperEmailअनुरोध फ़ील्ड में किसी मान्य उपयोगकर्ता का ईमेल पता डालें..gserviceaccount.comपर खत्म होने वाले सेवा खाते के ईमेल पतों कोdeveloperEmailके तौर पर इस्तेमाल नहीं किया जा सकता.
Content API for Shopping से माइग्रेट करते समय, Google Cloud प्रोजेक्ट को ट्रांज़िशन करना
Content API for Shopping से Merchant API पर माइग्रेट करते समय, आपको अपने पुराने Google Cloud प्रोजेक्ट को ऐक्सेस करने में समस्याएं आ सकती हैं. उदाहरण के लिए, अगर आपके ओरिजनल एपीआई पासकोड को सीधे तौर पर Merchant Center के पुराने पुष्टि करने वाले वर्कफ़्लो से कॉन्फ़िगर किया गया था या ओरिजनल प्रोजेक्ट का मालिक आपके संगठन को छोड़कर चला गया है.
Merchant API के लिए, अपने मौजूदा प्रोजेक्ट का इस्तेमाल किया जा सकता है या नया प्रोजेक्ट बनाया जा सकता है. अगर आपको नया प्रोजेक्ट बनाना है, तो पुराने प्रोजेक्ट पर Content API for Shopping का इस्तेमाल जारी रखा जा सकता है. इसके लिए, यहां दिए गए दो विकल्पों में से कोई एक चुनें.
माइग्रेशन प्रोजेक्ट के लिए रणनीति चुनना
| स्थिति | क्या पुराने प्रोजेक्ट का एडमिन ऐक्सेस होना ज़रूरी है? | एपीआई चालू करना | क्या नए प्रोजेक्ट के लिए, Content API for Shopping एक्सटेंशन ज़रूरी है? |
|---|---|---|---|
| पहला विकल्प: अपना मौजूदा प्रोजेक्ट जारी रखना | हां (या Google Cloud की सहायता टीम के ज़रिए वापस पाएं) | मौजूदा प्रोजेक्ट पर Merchant API चालू करना (Content API for Shopping पहले से चालू है) | नहीं (पुराने प्रोजेक्ट आईडी पर मौजूद एक्सटेंशन मान्य रहेगा) |
| दूसरा विकल्प: Content API for Shopping के लिए पुराने प्रोजेक्ट का इस्तेमाल जारी रखना और Merchant API के लिए नए प्रोजेक्ट का इस्तेमाल करना | नहीं | नए प्रोजेक्ट पर Merchant API चालू करें. साथ ही, पुराने प्रोजेक्ट पर Content API for Shopping को चालू रखें | नहीं (पुराने प्रोजेक्ट में एक्सटेंशन बना रहता है; नया प्रोजेक्ट सिर्फ़ Merchant API को कॉल करता है) |
पहला विकल्प: अपने मौजूदा Google Cloud प्रोजेक्ट को जारी रखना
अगर आपको Content API for Shopping और Merchant API, दोनों के लिए अपने मौजूदा Google Cloud प्रोजेक्ट का इस्तेमाल करना है, तो यह विकल्प चुनें.
शुरू करने से पहले, अपने मौजूदा प्रोजेक्ट के ऐक्सेस की पुष्टि करें या उसे वापस पाएं. Google Cloud console में साइन इन करें और पुष्टि करें कि आपके खाते के पास आपके मौजूदा प्रोजेक्ट में इनमें से कोई भी भूमिका है:
- मालिक (
roles/owner), - एडिटर (
roles/editor) - Service Usage Admin (
roles/serviceusage.serviceUsageAdmin)
- Merchant API को चालू करें: Google Cloud API लाइब्रेरी में जाकर या
gcloudकमांड का इस्तेमाल करके,merchantapi.googleapis.comको चालू करें. सिलसिलेवार निर्देशों के लिए, Merchant Center से एपीआई की पुष्टि करने की सुविधा कॉन्फ़िगर करना लेख पढ़ें. - Merchant Center में Google Cloud प्रोजेक्ट को रजिस्टर करें:
अपने मौजूदा प्रोजेक्ट से अनुरोधों को अनुमति देने के लिए,
डेवलपर के तौर पर रजिस्टर करें
गाइड में दिया गया तरीका अपनाएं. इसके बाद, अपने मौजूदा Google Cloud प्रोजेक्ट को अपने मुख्य
Merchant Center खाते से लिंक करने के लिए,
registerGcpतरीके को कॉल करें. आपके मौजूदा सेवा खाते की कुंजियां और Content API for Shopping के लिए मंज़ूर किया गया एक्सटेंशन, बिना किसी बदलाव के काम करता रहेगा.
दूसरा विकल्प: Content API for Shopping के लिए पुराने Google Cloud प्रोजेक्ट और Merchant API के लिए नए प्रोजेक्ट का इस्तेमाल करना
अगर Content API for Shopping का लेगसी इंटिग्रेशन, आपके पुराने Google Cloud प्रोजेक्ट पर मान्य क्रेडेंशियल और मंज़ूर किए गए एक्सटेंशन के साथ पहले से चल रहा है, तो यह विकल्प चुनें. साथ ही, अगर आपको नए Merchant API इंटिग्रेशन को किसी अलग और खास Google Cloud प्रोजेक्ट में बनाना है, तो:
- Content API for Shopping के इंटिग्रेशन को पुराने प्रोजेक्ट पर बनाए रखना: Content API for Shopping के मौजूदा वर्कफ़्लो और क्रेडेंशियल को पुराने Google Cloud प्रोजेक्ट पर ही चलने दें. अगर पुराने प्रोजेक्ट आईडी के लिए, समयसीमा बढ़ाने का आपका अनुरोध स्वीकार कर लिया गया है, तो Content API for Shopping का आपका मौजूदा इंटिग्रेशन, बढ़ाई गई समयसीमा तक काम करता रहेगा.
- सिर्फ़ Merchant API के लिए एक नया Google Cloud प्रोजेक्ट बनाएं: एक नया Google Cloud प्रोजेक्ट बनाएं,
merchantapi.googleapis.comको चालू करें, और अपने नए Merchant API वर्कलोड के लिए क्रेडेंशियल (सेवा खाता या OAuth 2.0 क्लाइंट आईडी) बनाएं. - नया प्रोजेक्ट रजिस्टर करना: अपने नए प्रोजेक्ट से किए गए अनुरोधों को अनुमति देने के लिए, डेवलपर के तौर पर रजिस्टर करें में दिया गया तरीका अपनाएं. इसके बाद, डेवलपर के मान्य ईमेल पते के साथ
registerGcpतरीके को कॉल करें. सेवा खाते के ईमेल पतों (.gserviceaccount.comपर खत्म होने वाले) कोdeveloperEmailके तौर पर इस्तेमाल नहीं किया जा सकता. - वर्कलोड को धीरे-धीरे माइग्रेट करें: Content API for Shopping के बंद होने की तय तारीख (या मंज़ूर की गई समयसीमा खत्म होने) से पहले, एपीआई कॉल को Content API for Shopping के पुराने प्रोजेक्ट से Merchant API के नए प्रोजेक्ट पर धीरे-धीरे शिफ़्ट करें. माइग्रेशन पूरा होने के बाद, पुराने प्रोजेक्ट को बंद कर दें.
खास मामला: माइग्रेशन पूरा होने से पहले, अपने पुराने Google Cloud प्रोजेक्ट का ऐक्सेस खो देना
Content API for Shopping अब काम नहीं करता. इसलिए, इसे Google Cloud API लाइब्रेरी में नहीं दिखाया जाता. साथ ही, इसे नए Google Cloud प्रोजेक्ट के लिए चालू नहीं किया जा सकता. इस वजह से, Content API for Shopping के मौजूदा वर्कलोड को नए Google Cloud प्रोजेक्ट में खुद से माइग्रेट नहीं किया जा सकता.
अगर आपके पुराने प्रोजेक्ट से Content API for Shopping कॉल नहीं किए जा सकते, तो: उदाहरण के लिए, क्रेडेंशियल रद्द होने या प्रोजेक्ट का ऐक्सेस वापस न मिलने की वजह से:
- अपने मौजूदा Google Cloud प्रोजेक्ट का ऐक्सेस वापस पाने के लिए, Google Cloud की सहायता टीम से संपर्क करें (पहला विकल्प) या
- नया Google Cloud प्रोजेक्ट बनाने और उसे रजिस्टर करने के लिए, दूसरा विकल्प अपनाएं. साथ ही, जिन वर्कफ़्लो पर असर पड़ा है उन्हें सीधे Merchant API पर माइग्रेट करें. अगर आपको माइग्रेशन के दौरान कोई गंभीर समस्या आती है, तो Merchant API की सहायता टीम से संपर्क करें.
अगले चरण
- डेवलपर के तौर पर रजिस्टर करने की ज़रूरी शर्तों के बारे में ज़्यादा जानने के लिए, डेवलपर के तौर पर रजिस्टर करें और डेवलपर के रजिस्ट्रेशन के बारे में अक्सर पूछे जाने वाले सवाल देखें.
- Merchant Center से एपीआई की पुष्टि करने की सुविधा को कॉन्फ़िगर करें लेख में जाकर, लेगसी क्रेडेंशियल के काम करने का तरीका जानें.
- माइग्रेट करने के बारे में ज़्यादा जानें पर जाकर, सब-एपीआई को रोल आउट करने की योजना बनाएं.
- Content API for Shopping के एक्सटेंडेड ऐक्सेस के बारे में ज़्यादा जानने के लिए, माइग्रेशन की समयसीमा बढ़ाने का अनुरोध करें पर जाएं.