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 Cloud प्रोजेक्ट किस 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 के लेगसी ऑथेंटिकेशन वर्कफ़्लो के ज़रिए सीधे तौर पर कॉन्फ़िगर किए गए थे या अगर ओरिजनल प्रोजेक्ट के मालिक ने आपका संगठन छोड़ दिया है.
अगर आपको अपने मौजूदा प्रोजेक्ट को जारी रखना है या Content API for Shopping को अपने पुराने प्रोजेक्ट पर जारी रखते हुए, Merchant API के लिए नया प्रोजेक्ट इस्तेमाल करना है, तो इनमें से कोई एक विकल्प चुनें.
माइग्रेशन प्रोजेक्ट की रणनीति चुनना
| स्थिति | क्या पुराने प्रोजेक्ट का एडमिन ऐक्सेस होना ज़रूरी है? | एपीआई चालू करें | क्या नए प्रोजेक्ट के लिए, 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 के पुराने प्रोजेक्ट से एपीआई कॉल को Merchant API के नए प्रोजेक्ट में धीरे-धीरे ट्रांसफ़र करें. ऐसा Content API for Shopping के बंद होने की तय तारीख से पहले (या मंज़ूरी वाले एक्सटेंशन की समयसीमा खत्म होने से पहले) करें. माइग्रेशन पूरा होने के बाद, पुराने प्रोजेक्ट को बंद कर दें.
खास मामला: माइग्रेशन पूरा करने से पहले, पुराने 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 के एक्सटेंडेड ऐक्सेस के बारे में ज़्यादा जानें.