תחילת העבודה עם ספריית הלקוח של PHP

כדי להתחיל להשתמש ב-Google Photos Library API עם ספריית הלקוח של PHP, צריך להגדיר את ספריית הלקוח בסביבת הפיתוח. לפני שעושים זאת, צריך להגדיר את הפרויקט על ידי הפעלת ה-API דרך Google API Console והגדרת מזהה לקוח של OAuth 2.0.

האפליקציה שלכם מנהלת אינטראקציה עם Google Photos מטעם משתמש Google Photos. לדוגמה, כשיוצרים אלבומים בספריית Google Photos של משתמש או מעלים פריטי מדיה לחשבון Google Photos של משתמש, המשתמש מאשר את בקשות ה-API האלה באמצעות פרוטוקול OAuth 2.0.

מזהה הלקוח ב-OAuth 2.0 מאפשר למשתמשי האפליקציה להיכנס לחשבון, לבצע אימות וכך להשתמש ב-Library API. ה-API של הספרייה לא תומך בחשבונות שירות. כדי להשתמש ב-API הזה, המשתמשים צריכים להיות מחוברים לחשבון Google תקין.

הגדרת האפליקציה

הפעלת ה-API

לפני שתוכלו להשתמש ב-Library API, עליכם להפעיל אותו בפרויקט שלכם.

  1. נכנסים אל Google API Console.
  2. בסרגל התפריטים, בוחרים פרויקט או יוצרים פרויקט חדש.
  3. כדי לפתוח את ספריית Google API, בתפריט הניווט לוחצים על APIs & Services > Library.
  4. מחפשים את Google Photos Library API. בוחרים את התוצאה המתאימה ולוחצים על Enable.

בקשת מזהה לקוח ב-OAuth 2.0

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

  1. נכנסים אל Google API Console ובוחרים את הפרויקט.
  2. בתפריט, בוחרים באפשרות APIs & Services > Credentials.
  3. בדף Credentials לוחצים על Create Credentials > OAuth client ID.
  4. בוחרים את סוג האפליקציה. בדוגמה הזו, סוג האפליקציה הוא Web application.
  5. רושמים את המקורות שמהם האפליקציה מורשית לגשת אל Google APIs באופן הבא:

    1. מזינים שם כדי לזהות את מזהה הלקוח.
    2. בשדה מקורות JavaScript מורשים מזינים את מקור האפליקציה. בשדה הזה אי אפשר להשתמש בתווים כלליים לחיפוש.

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

      בדוגמה הבאה מוצגת כתובת URL לפיתוח מקומי (הדוגמאות שלנו משתמשות ב-localhost:8080) וכתובת URL לייצור.

      http://localhost:8080
      https://myproductionurl.example.com
      
    3. השדה URI של הפניה אוטומטית מורשית הוא נקודת הקצה שמקבלת תגובות משרת OAuth 2.0. בדרך כלל זה כולל את סביבת הפיתוח והפניה לנתיב באפליקציה.

      http://localhost:8080/auth/google/callback
      https://myproductionurl.example.com/auth/google/callback
      
    4. לוחצים על יצירה.

  1. מתיבת הדו-שיח של לקוח OAuth שמתקבלת, מורידים את קובץ ה-JSON שמכיל את הגדרות הלקוח. פרטי הלקוח שלכם כוללים:

    • Client ID
    • סוד לקוח

    קובץ ה-JSON הזה ישמש מאוחר יותר כדי להגדיר את ספריית Google Auth ל-PHP שפועלת עם ספריית הלקוח הזו.

כדי להפעיל אפליקציה ציבורית שמשתמשת ב-Library API, האפליקציה צריכה להיבדק על ידי Google. כשבודקים את האפליקציה, ההודעה 'אפליקציה לא מאומתת' מופיעה במסך עד לאימות.

הגדרה של ספריית הלקוח

ספריית הלקוח של PHP מטפלת עבורכם בכל הקריאות ל-API בקצה העורפי ומציגות אובייקטים ידידותיים לעבודה, כולל דוגמאות קוד לכמה משימות נפוצות ב-API. קודם כול, מורידים ומתקינים את ספריית הלקוח של Google Photos Library API עבור PHP יחד עם יחסי התלות מ-GitHub. לאחר מכן, מגדירים את פרטי הכניסה של OAuth2 עבור PHP.

אפשרויות הורדה

שימוש בcomposer כדי לכלול את הספרייה כתלות בסביבת הפיתוח. כדי להוסיף את הספרייה להגדרות של הפרויקט ולהוריד אותה לספרייה vendor/, מריצים את הפקודה הבאה.

composer require google/photos-library

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

הגדרת פרטי הכניסה של OAuth2 ב-PHP

ספריית הלקוח הזו פועלת עם ספריית Google Auth ל-PHP. למידע נוסף, קראו את המאמר שימוש ב-OAuth 2.0 עם ספריית הלקוח של Google API עבור PHP.

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

רוצה לנסות כמה דוגמאות?

כדאי לנסות את הקוד שלמטה כדי לבצע את הקריאה הראשונה ל-API באמצעות ספריית הלקוח של PHP.

use Google\Auth\Credentials\UserRefreshCredentials;
use Google\Photos\Library\V1\PhotosLibraryClient;
use Google\Photos\Library\V1\PhotosLibraryResourceFactory;

try {
    // Use the OAuth flow provided by the Google API Client Auth library
    // to authenticate users. See the file /src/common/common.php in the samples for a complete
    // authentication example.
    $authCredentials = new UserRefreshCredentials( /* Add your scope, client secret and refresh token here */ );

    // Set up the Photos Library Client that interacts with the API
    $photosLibraryClient = new PhotosLibraryClient(['credentials' => $authCredentials]);

    // Create a new Album object with at title
    $newAlbum = PhotosLibraryResourceFactory::album("My Album");

    // Make the call to the Library API to create the new album
    $createdAlbum = $photosLibraryClient->createAlbum($newAlbum);

    // The creation call returns the ID of the new album
    $albumId = $createdAlbum->getId();
} catch (\Google\ApiCore\ApiException $exception) {
    // Error during album creation
} catch (\Google\ApiCore\ValidationException $e) {
    // Error during client creation
    echo $exception;
}

יש עוד דוגמאות ב-GitHub שכדאי לנסות.