מדריך למשתמש של Cloud Support API

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

במאמר זה נסביר איך לעבוד עם גרסה 1 של ה-API cloudsupport.googleapis.com. גרסה 2 של ה-API זמינה כרגע רק כגרסת טרום-GA. מידע נוסף זמין בקטע תיאורים של שלבי ההשקה.

סקירה כללית על התהליך

פירטנו כאן את התהליך הכללי שנדרש כדי להתחיל לעבוד עם ה-API.

  1. צוות שירות הלקוחות יוצר חשבון תמיכה ללקוח. חייבים לעשות זאת לפני שנוכל להמשיך הלאה.
  2. הלקוח מוסר לצוות שירות הלקוחות את מזהה הפרויקט שדרכו הוא רוצה להיכנס ל-API, ואותו פרויקט יוגדר כפרויקט צרכן ל-API.

    הפרויקט הזה ישמש כמשאב שמפעיל את ה-API, אבל אפשר להשתמש בפרטי הכניסה לקריאה ל-API מכל פרויקט ב-Google Cloud.

  3. הלקוח יוצר מפתח API לפרויקט הצרכן, שבו הוא ישתמש לקריאות ל-API. במאמר שימוש במפתחות API מוסבר איך ליצור מפתחות API.

  4. צוות שירות הלקוחות מוסיף את צוות הלקוח לרשימת מורשי הגישה ל-API (על ידי החלת התוויות המתאימות של הרשאות גישה).

  5. צוות שירות הלקוחות מוסיף את חשבון התמיכה של הלקוח לרשימת מורשי הגישה לחשבון השירות.

  6. הלקוח מפעיל את Cloud Support API בדף Cloud Support API מתוך Google Cloud Console, בלחיצה על ENABLE.

    כניסה לדף Cloud Support API

אם רוצים לשלב חשבון שירות:

  1. הלקוח מקצה חשבון שירות אחד או יותר לפי ההוראות במאמר עבודה עם חשבון שירות.

  2. בכרטיסייה IAM ב-Cloud Console, הלקוח מגדיר לחשבון השירות את התפקיד Organization Viewer או כל תפקיד אחר עם ההרשאה resourcemanager.organizations.get.

    אפשר לעשות זאת גם באופן פרוגרמטי:

      gcloud organizations add-iam-policy-binding
      organizations/ord-id
      --role roles/resourcemanager.organizationViewer
      --member service-account
     

  3. הלקוח מגדיר חשבון שירות אחד או יותר בתור 'משתמש תמיכה' בדף Support‏ > Settings‏ ב-Cloud Console.

  4. הלקוח מאפשר למחבר JIRA או לאפליקציות אחרות לגשת לחשבון השירות על ידי שיתוף פרטי הכניסה. במאמר סקירה כללית על אימות מוסבר איך לעשות זאת.

  5. אם ללקוח כבר יש כלי לניהול פרטי הכניסה, כדאי להשתמש בו גם לחשבונות השירות ב-Google Cloud.

  6. האפליקציות של הלקוח מבצעות קריאות רגילות ל-API (בדיוק כמו משתמש קצה), באמצעות פרטי הכניסה של חשבון השירות במקום פרטי הכניסה של משתמש קצה.

אם רוצים לבצע אימות OAuth 2.0:

  1. אם לא מתבצע עדיין אימות של Google באמצעות OAuth2, ניתן להגדיר זאת בעזרת
    המדריכים במאמר שימוש ב- OAuth 2.0 לגישה ל-Google APIs. כדאי לשים לב במיוחד לקטע בנושא הרשאה מצטברת (Incremental authorization).
  2. חשוב לוודא ששני היקפי ההרשאות הבאים כלולים במזהי הלקוח ב-OAuth2 שבהם משתמשת האפליקציה שלכם:
    • גישה אל Google Cloud באופן כללי: https://www.googleapis.com/auth/cloud-platform או https://www.googleapis.com/auth/cloud-platform.read-only
    • גישה לאפשרויות אחזור או יצירה של כרטיסי תמיכה ונתונים אחרים שקשורים לתמיכה: https://www.googleapis.com/auth/cloudsupport

אחזור של הגדרת ה-API

הגדרת ה-API מוצגת כ-Google Cloud discovery document.

לדוגמה: החליפו את <API_KEY> במפתח ה-API שיצרתם לפרויקט הצרכן קודם לכן.

curl 'https://cloudsupport.googleapis.com/$discovery/rest?key=<API_KEY>&labels=TRUSTED_TESTER&version=v1alpha2' > /tmp/cloudsupport.v1alpha2.json

לקוח REST

‏API ל-REST

בכל נקודות הקצה הרשומות בהמשך, צריך להחליף את הערך של <host> בערך cloudsupport.googleapis.com.

חשבונות תמיכה

רשימה של חשבונות התמיכה שמשתמשים יכולים לגשת אליהם ולנהל את הפרטים שלהם.

תפקידים נדרשים
סוג התפקיד
IAM צפייה בחשבונות תמיכה (תפקיד ארגוני)
IAM צפייה בארגון (תפקיד ארגוני)
תמיכה פיתוח, ייצור או קריטי לעסק

ListSupportAccounts

רשימה של כל SupportAccounts שלמשתמשים המאומתים יש גישה אליהם.

פורמט REST
GET <host>/v1/supportAccounts
פרמטרים
שם סוג תיאור
filter string

מסנן בפריסה גמישה שאפשר להחיל על תוצאת חיפוש. שימושים לדוגמה:

filter="name=gcp-sa-1234"

filter="cloud_resource=organizations/my-org-1234"

page_size int64 מספר ה-SupportAccounts המקסימלי שיתקבל בתשובה. לרוב המשתמשים זה לא יהיה ממש רלוונטי, מכיוון שמספר ה-SupportAccounts יהיה נמוך במיוחד.
page_token string אסימון שמזהה איזה דף תוצאות להציג. אם לא מצוין, יוצג דף התוצאות הראשון.
דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  http://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234?filter=cloud_resource:organizations/8675309

GetSupportAccount

אחזור של חשבון התמיכה הרצוי.

פורמט REST
GET <host>/v1/{name=supportAccounts/*}
פרמטרים

חשבון התמיכה מופיע בכתובת ה-URL.

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234

ניהול משתמשים

משמש את האדמין להוספה או להסרה של משתמשים מתפקידי תמיכה באופן פרוגרמטי.

תפקידים נדרשים
סוג התפקיד
IAM צפייה בחשבונות תמיכה (תפקיד ארגוני)
IAM צפייה בארגון (תפקיד ארגוני)
Support פיתוח, ייצור או קריטי לעסק

GetUserRole

אחזור ה-SupportRole של משתמש ספציפי. המשתמש שרוצים לאחזר נקבע לפי השדה email בהודעת הבקשה. אם אין פירוט בשדה זה, הוא נקבע לפי פרטי הכניסה של המשתמש המאומת.

פורמט REST
GET <host>/v1/{name=supportAccounts/*}:getUserRole
פרמטרים
שם סוג תיאור
email string כתובת האימייל של המשתמש שאת התפקיד שלו רוצים לאחזר.
דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:getUserRole?email=john@example.com

GetSupportRoles

אחזור רשימה של כל ה-SupportRoles שמשויכים לחשבון התמיכה הרלוונטי.

פורמט REST
GET <host>/v1/{name=supportAccounts/*}:getRoles
פרמטרים

חשבון תמיכה שמופיע ב-URL.

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:getRoles

SetSupportRoles

עדכון של רשימת ה-SupportRoles שמשויכים ל-SupportAccount הרלוונטי.

פורמט REST
POST <host>/v1/{name=supportAccounts/*}:setRoles
פרמטרים
שם סוג תיאור
roles SupportRole[] הרשימה המלאה של התפקידים שרוצים לשייך ל-SupportAccount.
דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{
  "roles": [
    {
      "email": "john@example.com",
      "role": "SITE_RELIABILITY",
    },
    {
      "email": "alex@example.com",
      "role": "OPERATION",
    },
    {
      "email": "tiger@example.com",
      "role": "ROLE_UNSPECIFIED",
    },
],
  "etag": "ZrTGhhB"
}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:setRoles

המאפיין role יכול לכלול את הערכים האלה:

סוג התפקיד תיאור
ROLE_UNSPECIFIED מחיקת תפקיד התמיכה של המשתמש.
BASIC תפקיד התמיכה "בסיסי".
DEVELOPER תפקיד התמיכה "פיתוח".
OPERATION תפקיד התמיכה "ייצור".
SITE_RELIABILITY תפקיד התמיכה "קריטי לעסק".

השיטה SetSupportRoles תחזיר מופע של google.longrunning.Operation. כדי לאחזר את הסטטוס של SetSupportRoles, תצטרכו לבדוק את נקודת הקצה (endpoint) GetOperation באמצעות מזהה הפעולה. מזהה הפעולה יהיה שילוב של אותיות ומספרים בפורמט הבא: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

בקשות תמיכה

אחזור, יצירה ועדכון של בקשות תמיכה.

תפקידים נדרשים
סוג התפקיד
IAM צפייה בחשבונות תמיכה (תפקיד ארגוני)
IAM צפייה בארגון (תפקיד ארגוני)
Support Role פיתוח, ייצור או קריטי לעסק

ListCases

אחזור הרשימה של בקשות התמיכה שמשויכות ל-SupportAccount.

פורמט REST
GET <host>/v1/{parent=supportAccounts/*}/cases
פרמטרים
שם סוג תיאור
filter string כרגע אפשר להזין רק את הערכים "OPEN" או "CLOSED".
page_size int64 מספר הבקשות המקסימלי שיתקבלו בכל אחזור.
page_token string אסימון שמזהה איזה דף תוצאות להציג. אם לא מצוין, יוצג דף התוצאות הראשון.
דוגמה
curl -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases

GetCase

אחזור של בקשת התמיכה שצוינה.

פורמט REST
GET <host>/v1/{name=supportAccounts/*/cases/*}
פרמטרים

חשבון התמיכה ומספר בקשת התמיכה שמופיעים בכתובת ה-URL.

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678

CreateCase

יצירה של בקשת תמיכה ושיוך שלה ל-SupportAccount הרלוונטי.

פורמט REST
POST <host>/v1/{parent=supportAccounts/*}/cases
פרמטרים
שם סוג תיאור
case Case

אובייקט של בקשת תמיכה.

דוגמה:


     { \
        display_name: "My test case for Istio", \
        description: "Istio network latency spike", \
        category: "Compute", \
        component: "Istio", \
        subcomponent: "Networking", \
        time_zone: "-07:00", \
        cc_addresses: ["foo@domain.com", "bar@domain.com"], \
        project_id: "my-gcp-test-project-1234", \
        priority: 3 \
      }
      

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ display_name: "My app is down", description: "Datastore appears to be down so my app is broken.", component: "Cloud Datastore", subcomponent: "Availability / Latency", time_zone: "-07:00", project_id: "my-super-project", category: "Storage & Databases", priority: 3 }' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases

UpdateCase

עדכון של בקשת תמיכה. בשלב זה ניתן לעדכן רק את השדות priority,‏ subject ו-cc_address.

פורמט REST
PATCH <host>/v1/{case.name=supportAccounts/*/cases/*}
פרמטרים
שם סוג תיאור
case Case בקשת התמיכה המעודכנת.
update_mask String[]

רשימת השדות שרוצים לעדכן בבקשת התמיכה.

דוגמה:

["case.priority"]

דוגמה: Update case
curl v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X PATCH -d '{ display_name: "My app is down", priority: 2, cc_addresses: ["james@example.com", "susan@example.com"]}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678?update_mask=case.cc_addresses,case.priority,case.display_name
דוגמה: Close case
curl v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X PATCH -d '{ state: "CLOSED" }' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678?update_mask=case.state

EscalateCase

העברה של בקשת תמיכה לטיפול ברמה גבוהה יותר. במקרה זה יתחיל התהליך של ניהול ההעברה על ידי שירות הלקוחות. האפשרות להעביר באופן עצמאי בקשת תמיכה לטיפול ברמה גבוהה יותר מוגבלת רק למשתמשים בתפקידים קריטי לעסק וייצור.

פורמט REST
POST <host>/v1/{name=supportAccounts/*/cases/*}:escalate
פרמטרים
שם סוג תיאור
reason Enum

הסיבה להעברת הבקשה לטיפול ברמה גבוהה יותר.

הערכים האפשריים:

  • REASON_UNSPECIFIED: הסיבה לא צוינה או לא ידועה.
  • RESOLUTION_TIME: הטיפול בבקשת התמיכה נמשך יותר מדי זמן.
  • TECHNICAL_EXPERTISE: לנציג התמיכה אין את המומחיות הנדרשת כדי לפתור את הבעיה.
  • BUSINESS_IMPACT: הבעיה משפיעה על העסק באופן משמעותי.
justification String טקסט חופשי שיופיע לצד השדה reason עם פרטים נוספים על הסיברה להעברה לטיפול ברמה גבוהה יותר.
דוגמה
curl v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ reason: "TECHNICAL_EXPERTISE", justification: "There is no technical expertise."}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678:escalate

GetIssueTaxonomy

אחזור הטקסונומיה של קטגוריות הבעיות ורכיבי המוצרים שבהם השתמשו בזמן היצירה של בקשת התמיכה.

פורמט REST
GET <host>/v1:getIssueTaxonomy
פרמטרים
שם סוג תיאור
product_type string חייב תמיד להיות "CLOUD_PLATFORM"..
דוגמה
curl -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1:getIssueTaxonomy

קבצים מצורפים

אחזור, יצירה והורדה של קבצים שמצורפים לבקשת תמיכה. התהליך לצירוף קובץ חדש לבקשת תמיכה מורכב משלושה שלבים:

  1. הוסיפו POST לנקודת הקצה :startAttachment כדי ליצור שם חדש לקובץ המצורף.
  2. הוסיפו POST לנקודת הקצה Bytestream.Write כדי להעלות את הבייטים הגולמיים של הקובץ המצורף.
  3. הוסיפו POST אל /attachments כדי ליצור את הקובץ באופן מלא ולשייך אותו לבקשת תמיכה. יצירת הקבצים המצורפים כוללת את כל המטא-נתונים של הקבצים, כמו סוג MIME (למשל image/jpeg), גודל (בבייטים) ושם הקובץ (r2_d2.jpg).
תפקידים נדרשים
סוג התפקיד
IAM צפייה בחשבונות תמיכה ב-Cloud (תפקיד ארגוני)
IAM צפייה בארגון (תפקיד ארגוני)
תמיכה פיתוח, ייצור או קריטי לעסק

ListAttachments

אחזור מטא-נתונים של כל הקבצים המצורפים שמשויכים לבקשת התמיכה.

פורמט REST
GET <host>/v1/{parent=supportAccounts/*/cases/*}/attachments
פרמטרים

חשבון התמיכה ומספר הבקשה שמופיעים בכתובת ה-URL.

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678/attachments
Bytestream.Read

אפשר להוריד את הבייטים הגולמיים של הקובץ המצורף באמצעות נקודת הקצה Bytestream.Read, על ידי יצירת קריאה ל-API ל-REST לפי הדוגמה הבאה:

curl -v -H 'Authorization: Bearer <TOKEN>' -H "Content-Type: application/json" -X GET https://cloudsupport.googleapis.com/v1/media/supportAccounts/gcp-sa-1234/cases/5678/attachments/9012?alt=media

StartAttachment

התחלת התהליך ליצירת קובץ מצורף חדש. השיטה מחזירה מחרוזת שמייצגת את שם המשאב לקובץ המצורף. לאחר מכן שם המשאב יהיה בשימוש בקריאות לנקודות הקצה ByteStream.Write ו-CreateAttachment.

פורמט REST
POST <host>/v1/{parent=supportAccounts/*/cases/*}:startAttachment
פרמטרים

חשבון התמיכה ומספר הבקשה שמופיעים בכתובת ה-URL.

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' -X POST -d {} https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678:startAttachment
Bytestream.Write

כדי להעלות את הבייטים הגולמיים של הקובץ המצורף, אפשר לבצע את הקריאה הבאה ל-Bytestream.Write:

curl -v -H 'Authorization: Bearer <TOKEN>' -H "Content-Type: application/json" -X POST -T {"r2-d2.jpg"} https://cloudsupport.googleapis.com/upload/v1/media/supportAccounts/gcp-sa-1234/cases/5678/attachments/9012?upload_type=media

CreateAttachment

יצירת המטא-נתונים של הקובץ המצורף ושיוך הקובץ לבקשת התמיכה שצוינה. תחילה צריך ליצור את שם הקובץ המצורף באמצעות קריאה ל-:startAttachment, והקובץ יכול להיות בגודל של עד ‎32MB.

בקשת REST
POST <host>/v1/{name=supportAccounts/*/cases/*}/attachments
פרמטרים
שם סוג תיאור
attachment Attachment

אובייקט של קובץ מצורף.

דוגמה:


{
  name: "supportAccounts/gcp-sa-1234/cases/998877/attachments/55115511", \
  file_name: "giraffe.jpg", \
  mime_type: "image/jpeg", \
  size: 986712, // in bytes \
}
דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ name: "supportAccounts/gcp-sa-1234/cases/5678/attachments/9012", mime_type: "image/jpeg", file_name: "R2-D2.jpg", size: 4458 }' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678/attachments

תגובות

יצירת תגובות שקשורות לבקשת תמיכה או רשימה של התגובות האלה.

תפקידים נדרשים
סוג התפקיד
IAM צפייה בחשבונות תמיכה ב-Cloud (תפקיד ארגוני)
IAM צפייה בארגון (תפקיד ארגוני)
תמיכה פיתוח, ייצור או קריטי לעסק

ListComments

רשימה של כל התגובות שמשויכות לבקשת התמיכה שצוינה.

REST
GET <host>/v1/{name=supportAccounts/*/cases/*}/comments
פרמטרים

חשבון התמיכה ומספר הבקשה שמופיעים בכתובת ה-URL.

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678/comments

CreateComment

הוספת תגובה חדשה לבקשת תמיכה.

פורמט REST
POST <host>/v1/{name=supportAccounts/*/cases/*}/comments
פרמטרים
שם סוג תיאור
comment תגובה

האובייקט של התגובה.

דוגמה:


{
text: "This is my comment", \
}
           

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ name:"supportAccounts/gcp-sa-1234/cases/5678",text:"I am commenting on this case."}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678/comments

הודעות

רשימה של כל ההודעות הרלוונטיות של שירות הלקוחות.

תפקידים נדרשים
סוג התפקיד
IAM צפייה בחשבונות תמיכה ב-Cloud (תפקיד ארגוני)
IAM צפייה בארגון (תפקיד ארגוני)
תמיכה פיתוח, ייצור או קריטי לעסק

ListNotifications

רשימה של כל אירועי Google Cloud הפתוחים שידוע שהם משפיעים באופן פעיל על לקוחות. התשובה תכלול בעיות שמשפיעות על כל המוצרים, ולא בעיות שספציפיות למשתמש שהפעיל את נקודת הקצה.

פורמט REST
GET <host>/v1/{parent=supportAccounts/*}/notifications
פרמטרים
שם סוג תיאור
page_size int32 המספר המקסימלי של הודעות שיופיעו בתשובה.
page_token string אסימון לאחזור של דף התוצאות הבא. נקודת הקצה ListNotification לא תומכת כרגע בעימוד.
דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json'  https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/notifications

IAM

נקודות קצה ליצירת אינטראקציה עם ניהול זהויות והרשאות גישה.

TestIamPermissions

בדיקה אם למשתמשים המאומתים הקיימים יש הרשאות למשאב הנתון של שירות הלקוחות. המשאבים התקפים של שירות הלקוחות הם רק חשבונות תמיכה, בקשות תמיכה, פעולות ותגובות.

לדוגמה, כדי לבדוק אם למשתמש יש גישה לאחזור פרטים של חשבון תמיכה, יש לציין את TestIamPermissionsRequest באופן הבא:

resource: "supportAccounts/{support_account_id}"
permission: "cloudsupport.accounts.get"
פורמט REST
POST <host>/v1/{resource=**}:testIamPermissions
פרמטרים
שם סוג תיאור
permissions string[]

רשימת ההרשאות לבדיקה.

דוגמה:

‎`["cloudsupport.comments.list", "cloudsupport.cases.list"]`‎

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' -X POST -d '{permissions: "cloudsupport.accounts.get"}' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234:testIamPermissions

פעולות

נקודות קצה לאחזור הסטטוס של פעולות ממושכות.

GetOperation

אחזור הסטטוס של פעולה קיימת.

פורמט REST
GET <host>/v1/operations/{name=supportAccounts/*/operations/*}
פרמטרים

חשבון התמיכה ומזהה הפעולה שמופיעים בכתובת ה-URL.

דוגמה
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/operations/supportAccounts/gcp-sa-1234/operations/5678-0912

יצירה של ספריות לקוח

שכפול מחולל הלקוחות של Google APIs:

cd /tmp/; git clone https://github.com/google/apis-client-generator.git;

ודאו ש-Python 2.7 מותקן:

sudo apt-get install python

ודאו שהפיצ'ר 'תמונה בתוך תמונה (PIP)' מותקן:

sudo apt-get install python-pip

יחסי תלות של התקנות:

pip install google-apis-client-generator

יצירה של ספריות לקוח:

פקודה זו תיצור אזהרה אחת או שתיים שמתחילות ב-WARNING:root:object without properties. אפשר להתעלם מהן. היצירה של ספריית הלקוח עדיין תתבצע.

./generate.sh --input=/tmp/cloudsupport.v1alpha2.json --output_dir=/tmp/cloudsupport_generated --language=java

שימוש ב-API

לפני שמתחילים

  • צריך להוסיף תלות ב-API Client Libraries Java
  • צריך להוסיף תלות בקוד שנוצר בשלב הקודם
  • חשוב לוודא שהקוד נבנה בצורה נכונה

    // Shared constants
    String CLOUD_SUPPORT_SCOPE = "https://www.googleapis.com/auth/cloudsupport";
    
    // Customer specific config
    String SERVICE_ACCOUNT_ID = "<... service account id ...>";
    File SERVICE_ACCOUNT_PRIVATE_KEY = new File("<... p12 key file ...>");
    String SUPPORT_ACCOUNT_ID = "supportAccounts/gcp-sa-<......>";
    
    // Service setup
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    
    // This section is for service account authentication
    // If you are using OAuth2 instead, follow guide at
    // https://developers.google.com/api-client-library/java/google-oauth-java-client/oauth2
    GoogleCredential credential = new GoogleCredential.Builder()
      .setTransport(httpTransport)
      .setJsonFactory(jsonFactory)
      .setServiceAccountId(SERVICE_ACCOUNT_ID)
      .setServiceAccountPrivateKeyFromP12File(SERVICE_ACCOUNT_PRIVATE_KEY)
      .setServiceAccountScopes(Collections.singleton(CLOUD_SUPPORT_SCOPE))
      .build();
    
    // Main API service is ready to use!
    CloudSupport supportService = new CloudSupport.Builder(httpTransport, jsonFactory, credential).build();
    
    // Each call will look something like this:
    SupportAccount account = supportService.supportAccounts().get(SUPPORT_ACCOUNT_ID).execute();