כדי להשתמש ב-Merchant API, אתם צריכים לקשר את פרויקט הענן שלכם ב-Google Cloud לחשבון הראשי שלכם ב-Merchant Center באמצעות הרשמה למפתחים. במהלך מחזור החיים של השילוב, יכול להיות שתצטרכו לשנות את מזהה הפרויקט ב-Google Cloud שמשויך לחשבון Merchant Center, לנהל כמה פרויקטים בסביבות שונות או להעביר פרויקטים כשאתם עוברים מ-Content API for Shopping.
במדריך הזה נסביר איך:
- לשנות או להחליף את מזהה הפרויקט ב-Google Cloud בשילוב קיים של Merchant API בלי זמן השבתה.
- לבטל את הרישום של פרויקט בענן ב-Google Cloud בחשבון Merchant Center אחד ולרשום אותו בחשבון Merchant Center אחר.
- אם אתם עוברים מ-Content API for Shopping ל-Merchant API, בחרו את האסטרטגיה המתאימה למעבר בין פרויקטים בענן ב-Google Cloud והפעילו אותה.
דרישות מוקדמות
לפני שאתם מנהלים או מעבירים פרויקטים בענן ב-Google Cloud, ודאו שאתם עומדים בדרישות המוקדמות לרישום מפתחים. למידע נוסף, עיינו בקטע דרישות מוקדמות במדריך הרשמה כמפתח.
כללים ומגבלות חשובים
כשמתכננים שינויים בפרויקטים בענן ב-Google Cloud, חשוב לזכור את הכללים הבאים:
- רישום פרויקטים אחד לרבים: אפשר לרשום כמה פרויקטים ב-Google Cloud לחשבון Merchant Center ראשי אחד בו-זמנית. עם זאת, כל פרויקט ב-Google Cloud יכול להיות רשום רק לחשבון Merchant Center ראשי אחד בכל זמן נתון. אם תנסו לרשום פרויקט שכבר מקושר לחשבון Merchant Center אחר, תוחזר שגיאה מסוג
ALREADY_EXISTS(409 Conflict) עם הסיבהDUPLICATE_PROJECT_REGISTRATION. - פרטיות הבעלות על הפרויקט: מטעמי אבטחה ופרטיות, צוות התמיכה של Google שופינג ו-Merchant API לא יכול לחשוף את כתובות האימייל של ה-Project Owner או האדמינים של פרויקט ב-Google Cloud. אם איבדתם את הגישה לפרויקט, פנו לצוות התמיכה של Google Cloud.
- הארכות להשבתה של Content API for Shopping הן ספציפיות לפרויקט: אם קיבלתם אישור גישה מורחבת ל-Content API for Shopping, ההארכה הזו חלה רק על מזהה הפרויקט הספציפי ב-Google Cloud ששלחתם בבקשה. התוספים לא מועברים באופן אוטומטי לפרויקטים חדשים ב-Google Cloud.
שינוי מזהה הפרויקט בענן ב-Google Cloud של חשבון Merchant API
אם אתם כבר משתמשים ב-Merchant API וצריכים להעביר את השילוב לפרויקט חדש ב-Google Cloud (למשל, בגלל שינוי ארגוני, מדיניות רוטציית פרטי כניסה או אובדן הרשאת אדמין לפרויקט ישן יותר), אתם יכולים להעביר פרויקטים בלי זמן השבתה. בחשבון Merchant Center אפשר לרשום כמה פרויקטים ב-Google Cloud בו-זמנית, אז אתם יכולים לרשום את הפרויקט החדש לפני שאתם מסירים את הפרויקט הישן.
שלב 1: יוצרים ומגדירים פרויקט חדש ב-Google Cloud
- יוצרים פרויקט חדש במסוף Google Cloud. לקבלת הוראות מפורטות, ראה יצירת פרויקט בענן ב-Google Cloud.
- מפעילים את Merchant API (
merchantapi.googleapis.com) בפרויקט החדש. עיינו בקטע הפעלת Merchant API במאמר יצירת פרויקט בענן של Google. - יוצרים פרטי כניסה לאימות (חשבון שירות או מזהה לקוח OAuth 2.0) בפרויקט החדש ב-Google Cloud.
- מוסיפים את כתובת האימייל לאימות (למשל, כתובת האימייל של חשבון השירות החדש) כמשתמש עם התפקיד
ADMINבחשבון Merchant Center הראשי.
שלב 2: רישום הפרויקט החדש ב-Google Cloud
מאמתים באמצעות פרטי הכניסה מפרויקט הענן החדש ב-Google Cloud, ומפעילים את ה-method accounts.developerRegistration.registerGcp כדי לקשר את הפרויקט החדש לחשבון הראשי ב-Merchant Center. הוראות מפורטות זמינות בקטע ביצוע קריאת הרישום במאמר הרשמה כמפתח.
שלב 3: מאמתים את פרויקטי הענן הרשומים ב-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: אסימון ההרשאה לביצוע הקריאה ל-API
התשובה מחזירה את המשאב DeveloperRegistration עם מספרי הפרויקטים ב-Google Cloud של כל הפרויקטים המקושרים בשדה gcpIds:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
כדי לבדוק לאיזה חשבון Merchant Center רשום הפרויקט ב-Google Cloud שממנו נשלחה הקריאה, אפשר להפעיל את ה-method accounts.developerRegistration.getAccountForGcpRegistration:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
מחליפים את מה שכתוב בשדות הבאים:
-
ACCESS_TOKEN: אסימון ההרשאה שנוצר באמצעות פרטי הכניסה מהפרויקט בענן ב-Google Cloud שרוצים לבדוק
שלב 4: העברת התנועה וביטול הרישום של הפרויקט הישן ב-Google Cloud
- מעדכנים את הגדרות האפליקציה כדי להשתמש בפרטי הכניסה מהפרויקט החדש ב-Google Cloud. מכיוון ששני הפרויקטים רשומים, עומסי העבודה שלכם עוברים בלי הפרעה.
- אחרי שכל התנועה תשתמש בפרויקט החדש, תוכלו להסיר את הקישור לפרויקט הישן. כדי לעשות את זה, צריך לבצע אימות באמצעות פרטי הכניסה של הפרויקט הישן ב-Google Cloud ולקרוא ל-method
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 לביצוע הקריאה ל-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"
איך מקצים מחדש פרויקט בענן רשום ב-Google Cloud לחשבון Merchant Center אחר
פרויקט ב-Google Cloud יכול להיות רשום רק לחשבון Merchant Center ראשי אחד בכל פעם. לכן, כדי להקצות מחדש פרויקט קיים מחשבון Merchant Center אחד (OLD_ACCOUNT_ID) לחשבון אחר (NEW_ACCOUNT_ID), צריך לפעול לפי השלבים הבאים. הנחיות לבחירת חשבון Merchant Center שאליו רוצים לרשום את הפרויקט מפורטות בקטע שיקולים חשובים:
- מאמתים באמצעות פרטי הכניסה מהפרויקט בענן ב-Google Cloud שיש לו גישה אל
OLD_ACCOUNT_ID, וקוראים ל-unregisterGcpב-accounts/OLD_ACCOUNT_ID/developerRegistration. - מוודאים שלזהות המאמתת יש את התפקיד
ADMINב-NEW_ACCOUNT_ID, ושל-NEW_ACCOUNT_IDיש אתר מאומת. - מפעילים את
registerGcpב-accounts/NEW_ACCOUNT_ID/developerRegistrationבאמצעות פרטי הכניסה מאותו פרויקט ב-Google Cloud. אם ל-NEW_ACCOUNT_IDעדיין אין משתמש עם התפקידAPI_DEVELOPER, צריך להעביר כתובת אימייל חוקית של משתמש בשדה הבקשהdeveloperEmail. אי אפשר להשתמש בכתובות אימייל של חשבונות שירות שמסתיימות ב-.gserviceaccount.comבתורdeveloperEmail.
העברת פרויקטים בענן ב-Google Cloud כשעוברים מ-Content API for Shopping
כשעוברים מ-Content API for Shopping ל-Merchant API, יכול להיות שתיתקלו במגבלות גישה בפרויקט הקודם ב-Google Cloud. למשל, אם מפתחות ה-API המקוריים הוגדרו ישירות דרך תהליך העבודה הקודם של האימות ב-Merchant Center, או אם הבעלים המקורי של הפרויקט עזב את הארגון.
אם אתם רוצים להמשיך להשתמש בפרויקט הקיים או להשתמש בפרויקט חדש בשביל Merchant API ולהמשיך להשתמש ב-Content API for Shopping בפרויקט הישן, בחרו באחת משתי האפשרויות הבאות.
בחירת אסטרטגיה לפרויקט ההעברה
| תרחיש | האם נדרשת הרשאת אדמין לפרויקט הישן? | ממשקי API שצריך להפעיל | האם צריך תוסף של Content API for Shopping בפרויקט חדש? |
|---|---|---|---|
| אפשרות 1: להמשיך להשתמש בפרויקט הקיים | כן (או שחזור באמצעות צוות התמיכה של Google Cloud) | מפעילים את Merchant API בפרויקט הקיים (Content API for Shopping כבר מופעל) | לא (התוסף הקיים במזהה הפרויקט הישן נשאר בתוקף) |
| אפשרות 2: להשאיר את הפרויקט הישן ל-Content API for Shopping ולהשתמש בפרויקט חדש ל-Merchant API | לא | מפעילים את Merchant API בפרויקט החדש (משאירים את Content API for Shopping מופעל בפרויקט הישן) | לא (הפרויקט הישן שומר על התוסף שלו, הפרויקט החדש קורא רק ל-Merchant API) |
אפשרות 1: להמשיך להשתמש בפרויקט הקיים ב-Google Cloud
בחרו באפשרות הזו אם אתם רוצים להשתמש בפרויקט הקיים ב-Google Cloud גם ל-Content API for Shopping וגם ל-Merchant API.
לפני שמתחילים, צריך לאמת או לשחזר את הגישה לפרויקט הקיים. נכנסים למסוף Google Cloud ומוודאים שבחשבון שלכם יש אחד מהתפקידים הבאים בפרויקט הקיים:
- בעלים (
roles/owner), - עריכה (
roles/editor) - אדמין של שימוש בשירות (
roles/serviceusage.serviceUsageAdmin)
- מפעילים את Merchant API: מפעילים את
merchantapi.googleapis.comבספריית ה-API של Google Cloud או באמצעות הפקודהgcloud. הוראות מפורטות מופיעות במאמר הגדרת אימות API מ-Merchant Center. - לרשום את הפרויקט ב-Google Cloud ב-Merchant Center:
פועלים לפי השלבים במדריך הרשמה כמפתח כדי לאשר בקשות מהפרויקט הקיים, וקוראים ל-method
registerGcpכדי לקשר את הפרויקט הקיים ב-Google Cloud לחשבון הראשי ב-Merchant Center. המפתחות הקיימים של חשבון השירות והתוסף המאושר של Content API for Shopping ימשיכו לפעול ללא שינויים.
אפשרות 2: שימוש בפרויקט הישן ב-Google Cloud בשביל Content API for Shopping ובפרויקט חדש בשביל 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 ימשיך לפעול עד המועד האחרון החדש.
- יצירת פרויקט חדש ב-Google Cloud רק בשביל Merchant API: יוצרים פרויקט חדש ב-Google Cloud, מפעילים את
merchantapi.googleapis.comויוצרים פרטי כניסה (חשבון שירות או מזהה לקוח OAuth 2.0) לעומסי העבודה החדשים של Merchant API. - רישום הפרויקט החדש: פועלים לפי השלבים שמפורטים בקטע הרשמה כמפתחים כדי לאשר בקשות מהפרויקט החדש, וקוראים ל-method
registerGcpעם כתובת אימייל חוקית ליצירת קשר עם המפתח. אי אפשר להשתמש בכתובות אימייל של חשבונות שירות (שמסתיימות ב-.gserviceaccount.com) בתורdeveloperEmail. - העברת עומסי עבודה בהדרגה: העבירו בהדרגה את הקריאות ל-API מהפרויקט הישן של Content API for Shopping לפרויקט החדש של Merchant API, לפני תאריך ההוצאה משימוש המתוכנן של Content API for Shopping (או לפני שתוקף ההארכה שאושרה לכם יפוג), והוציאו משימוש את הפרויקט הישן אחרי שתסיימו את ההעברה.
מקרה מיוחד: איבדתם את הגישה לפרויקט הישן ב-Google Cloud לפני שהשלמתם את ההעברה
Content API for Shopping הוצא משימוש, ולכן הוא לא מופיע יותר בספריית ה-API של Google Cloud ואי אפשר להפעיל אותו בפרויקטים חדשים שנוצרו ב-Google Cloud. לכן, אתם לא יכולים להעביר בעצמכם עומסי עבודה קיימים של Content API for Shopping לפרויקט חדש ב-Google Cloud.
אם אתם לא יכולים יותר לבצע קריאות ל-Content API for Shopping מהפרויקט הישן (לדוגמה, בגלל שפרטי הכניסה בוטלו או שאין לכם גישה לפרויקט):
- לפנות לתמיכה של Google Cloud כדי לקבל שוב גישה לפרויקט הקיים ב-Google Cloud (אפשרות 1).
- פועלים לפי אפשרות 2 כדי ליצור ולרשום פרויקט בענן חדש ב-Google Cloud ולהעביר את תהליכי העבודה המושפעים ישירות אל Merchant API. אם נתקלתם בבעיה קריטית שמונעת את ההעברה, פנו לתמיכה של Merchant API.
השלבים הבאים
- מידע נוסף על דרישות הרישום למפתחים זמין במאמר הרשמה כמפתח ובשאלות נפוצות בנושא הרשמה כמפתח.
- במאמר הגדרת אימות API מ-Merchant Center מוסבר איך פועלים פרטי כניסה מדור קודם.
- איך מתחילים לעבור מ-Content API for Shopping
- פרטים על גישה מורחבת ל-Content API for Shopping זמינים במאמר בקשת הארכה של תקופת ההעברה.