PHP 如何使用Google API相關功能 - acaj2018 的部落格 - udn部落格
acaj2018 的部落格
作家:資訊小幫手
文章分類
    Top
    PHP 如何使用Google API相關功能
    2025/06/11 16:53:23
    瀏覽:79
    迴響:0
    推薦:0
    引用0

    有別於其他的API,使用google的API時,需要使用Google Client Library,除了使用composer載入以外,也可以透過此連結直接下載,要記得選擇與當前 PHP 框架對應的檔案才能正常使用,本篇文章會說明如何使用Google Client Library,包含前置設定,引用功能到實際使用google drive的API上傳檔案。

    前置作業

    1.首先到google專案頁面建立一個專案,建立完成後點選左側的API和服務

    2.左側跳轉到憑證頁面,建立OAuth用戶端ID

    3.應用程式類型選取網頁應用程式,授權的JavaScript 來源以及授權的重新導向 URI,分別對應送出OAuth以及接受OAuth結果的網址,這個網址是可以使用localhost的

    4.點選左側選單程式庫,並搜尋要啟用的API點選啟用

    5.點選剛剛申請好的OAuth 用戶端ID,點選用戶端密鑰旁的下載,會得到一個json檔

    6.至此設定就完成了,接下來是程式面的開發,我們需要建立一個送出請求的 php 頁面

    1. 建立一個google client物件
      →$client = new Google\Client();
    2. 將上一步的json檔案載入
      →$client ->setAuthConfig(“json檔的相對或絕對路徑”);
    3. 加入這次要使用的API範圍,這個步驟要跟上面的第4步開啟API相呼應,只設定這邊還是會無法使用該API
      →$client ->addScope(Google_Service_Drive::DRIVE_FILE);
    4. 加入這兩個設定,讓之後其可以自動刷新憑證,不加的話每隔一段時間就得重複開啟OAuth頁面做授權
      →$client->setAccessType(offline);
      →$client->setApprovalPrompt(force);
    5. 設定用戶給予權限後要重導向回我們系統的處理頁面
      →$redirect_uri ="處理頁面url";
      →$client ->setRedirectUri($redirect_uri);
    6. 取得要給客戶同意授權的頁面url,並用js或其他方式將用戶導向到這個頁面
      →$auth_url = $client ->createAuthUrl();
      →echo("

      ");

    7.接下來要建立授權接收端的頁面

      1. 經過實測後證實用同一個$client物件做授權行不通,所以得另外宣告一次
        →$client = new Google\Client();
      2. 加上client端的設定
        →$client ->setAuthConfig(“json檔的相對或絕對路徑”);
      3. 範圍跟重導向的設定也要加上
      4. 用得到的code獲得token,並設定給client物件,這個token最好另外存放,資料庫或實體檔案皆可,用來權限過期刷新
        →$token = $client -> fetchAccessTokenWithAuthCode($_GET[code]);
        →$client -> setAccessToken($token);
      5. 使用前確保物件沒過期
        →if(!$client->isAccessTokenExpired()) 
      6. 如果過期的刷新方式
        →$client = new Google\Client();
        →$client ->setAuthConfig("json檔的相對或絕對路徑");
        →$client->setAccessToken("前一次認證儲存的token");
        →$refresh_token = $client->getRefreshToken();
        →$token = $client->fetchAccessTokenWithRefreshToken($refresh_token);
      7. 若確認沒過期即可使用我們授權範圍的API物件
        →$service = new Google_Service_Drive($client);
      8. 上傳檔案到指定的資料夾範例
        →$file = new Google_Service_Drive_DriveFile();
        →$file->setName(test.jpg); // 這裡你可以設定你想要的文件名稱
        →$file->setParents(array(google資料夾的ID));
        →資料夾的ID=點進資料夾的網址,最後面的那串18~tP

    $result = $service->files->create($file, array(

      data => file_get_contents("要上傳的檔案路徑"),

      mimeType => mime_content_type("要上傳的檔案路徑"),

      uploadType => multipart

     ));


    $file_id = $result->id;

      $permission = new Google_Service_Drive_Permission(array(

       type => anyone,

       role => reader,

      ));

      $service->permissions->create($file_id, $permission);


    結論

    在現代的網頁開發中,Google提供的API無疑是不可或缺的工具。雖然Google將API相關的套件模組化,極大地簡化了實際使用時所需的開發時間,但這也使得開發前的準備和設定變得更加複雜。Google的OAuth認證作為使用所有API模組的前置作業,稍有不慎的設定錯誤就可能導致認證失效,進而中斷自動化程式的運行。為了幫助開發者更好地應對這些挑戰,撰寫此篇文章記錄了使用 PHP 與Google Client Library的步驟。本文將詳細介紹從開發環境的設置、Google API的啟用、OAuth 2.0認證的配置到實際範例程式碼的編寫,讓讀者能夠全方位掌握整個流程。這篇文章的目的不僅僅是提供一個指南,更是為了建立一個開發過程中的參考,讓未來在使用Google API進行開發時,能夠更加順利和高效。希望此文能為大家帶來幫助,讓相關開發工作變得更順利。

    回應
    全站分類:知識學習 其他
    自訂分類:技術探討
    上一則: C# 映射(Reflection)
    下一則: 偵錯階段使用Https

    限會員,要發表迴響,請先登入