在 Google Apps Script 中,可以設計一個 API,並在其中帶入變數來應對不同的請求情境。這種方法允許使用者根據輸入的參數動態地調整 API 的行為,例如從 Flickr API 獲取特定相簿的照片。以下是如何在 Google Apps Script 中實現並發布一個可以接受參數的 API 的步驟:

步驟 1:創建一個新的 Google Apps Script 項目

您可以在 Google Drive 中直接創建一個新的 Apps Script 項目,或者在現有的 Google Sheets、Docs 或 Forms 中添加一個 Script。

步驟 2:編寫帶有參數的 API 函式

您可以使用 doGetdoPost 函式來接收 HTTP 請求。以下是一個 doGet 函式的範例,該函式從 URL 參數中抓取資料:

function doGet(e) {
  var result = {
    status: "success",
    message: ""
  };

  try {
    var apiKey = e.parameter.apiKey;
    var userId = e.parameter.userId;
    var photosetId = e.parameter.photosetId;

    var data = fetchFlickrPhotoset(photosetId, apiKey, userId);
    result.message = "照片資料讀取成功!";
    result.data = data;
  } catch (error) {
    result.status = "error";
    result.message = "發生錯誤:" + error.toString();
  }

  return ContentService.createTextOutput(JSON.stringify(result))
    .setMimeType(ContentService.MimeType.JSON);
}

function fetchFlickrPhotoset(photosetId, apiKey, userId) {
  var url = 'https://www.flickr.com/services/rest/?method=flickr.photosets.getPhotos' +
    '&api_key=' + apiKey +
    '&photoset_id=' + photosetId +
    '&user_id=' + userId +
    '&extras=url_o' +
    '&page=1' +
    '&per_page=10' +
    '&format=json' +
    '&nojsoncallback=1';

  var response = UrlFetchApp.fetch(url, {method: 'get'});
  var json = JSON.parse(response.getContentText());
  return json;
}

 

步驟 3:發布 API

在 Apps Script 編輯器中,點擊「發布」>「部署為網頁應用」。在對話框中設置您希望的存取權限(通常選擇「只有自己」或「任何人,甚至匿名」),然後發布應用程式。

步驟 4:使用發布的 API

一旦應用程式發布,您會得到一個 URL,可以通過這個 URL 帶入參數來存取的 API。例如:

https://script.google.com/macros/s/你的腳本ID/exec?apiKey=你的API鑰匙&userId=使用者ID&photosetId=相簿ID

透過這樣的設定,可以有效地利用 Apps Script 提供服務,滿足特定需求,並與外部 API(如 Flickr)進行互動。