簡體   English   中英

如何讓 Snipe-IT API 使用 Google 應用腳本檢索數據並將其填充到 Google 表格中?

[英]How do I get Snipe-IT API to retrieve data using a Google App Script and populate it on a Google Sheet?

我正在嘗試在 Google Data Studio 上創建我們在 Snipe-IT 資產管理上的數據的可視化。 為此,我正在創建一個帶有 App Script 擴展的 Google Sheets 電子表格,它將與 Snipe-IT API 通信,檢索數據並將其填充到 Google Sheet 上。 到目前為止,我已經能夠讓 API 在終端上填充我們的一些數據,而不是在電子表格本身上。

我寫了一個簡單的腳本,它應該列出分配給一個特定用戶的資產,用於測試目的。 同樣,該腳本運行良好,它在終端上填充了我需要的數據,但不在 Google 表格上。 這是我的確切代碼(不包括設置部分詳細信息):


//SETUP
serverURL = 'SERVER-URL'; (ignore)
apiKey = 'API-KEY' (ignore)

function onOpen(e) {
  createCommandsMenu();
}

function createCommandsMenu() {
  var ui = SpreadsheetApp.getUi();
      ui.createMenu('Run Script')
      .addItem('Get Assets By Department', 'runGetAssetsByDepartment')
      .addToUi();
}

function testGetAssetsByUser(){
  getAssetsByUser("1745")
}
//Get assets for a user by id
//Returns a list of assets by id
function getAssetsByUser(userID) {
  
  var url = serverURL + 'api/v1/users/' + userID + '/assets';
  var headers = {
    "Authorization" : "Bearer " + apiKey
  };
  
  var options = {
    "method" : "GET",
    "contentType" : "application/json",
    "headers" : headers
  };
  
  var response = JSON.parse(UrlFetchApp.fetch(url, options));
  var rows = response.rows;
  var assets = []
  
  for (var i=0; i<rows.length; i++) {
    var row = rows[i];
    if (row.category.name == "Laptop" || row.category.name == "Desktop" || row.category.name == "2-in-1") {
      var asset = row.id
      assets.push(asset)
    }
  }
  return assets
}

console.log(getAssetsByUser(1745));

有幾種方法可以將值寫入電子表格

基礎知識

獲取電子表格

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

這適用於有界項目和附加組件

抓住目標表

var sheet = spreadsheet.getSheetByName('put here the sheet name');

如果您的電子表格只有一張工作表,您可以使用SpreadsheetApp.getActiveSheet() ,但對於從自定義菜單調用的函數,這個是有風險的。

將值寫入目標工作表

准備工作:制作二維數組

var output = assets.map(v => [v]);

做:將值寫入目標工作表

sheet.getRange(1,1,output.length, 1).setValues(output);

資源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM