Supabase 和 Google Apps 脚本

问题描述 投票:0回答:2

是否可以将 Supabase 与 Google Apps 脚本 (GAS) 一起使用?

我是 Supabase 的新手,之前从未尝试过将外部库导入到 GAS 中。我计划使用 Supabase 作为我的 GAS 项目的数据库。该项目旨在在聊天平台而不是用户界面中运行机器人。根据 Supabase 的文档,看起来它是通过执行 Supabase 库中的函数来工作的。

我尝试通过从here复制粘贴整个库或使用

eval()
来使用Supabase库,但它们都返回错误:
ReferenceError: self is not defined

这是我运行的函数,使用

eval()

function myFunction(){
  var x = eval(UrlFetchApp.fetch("https://unpkg.com/@supabase/supabase-js").getContentText())
  var supabase = createClient(supabaseUrl,supabaseKey)
}

createClient()
应该是 Supabase 库中的一个函数。

javascript google-apps-script supabase supabase-database
2个回答
3
投票

我能想到的实现这项工作的一个可能途径是使用 Postgrest,它是 Supabase 用户的底层 API 服务器。

由于每个 Supabase 实例都可以使用 Postgrest 提供的 REST API 进行访问,因此您应该能够从 GAS 项目对 Supabase 数据库执行插入、更新、删除和读取操作。

您可能可以运行类似的命令来访问 Supabase。

$anonKey = "YOUR_SUPABASE_ANON_KEY_HERE"
$url = "YOUR_SUPABASE_URL_HERE"
$var options = {
     "async": true,
     "crossDomain": true,
     "method" : "GET",
     "headers" : {
       "Authorization" : "Bearer " + $anonKey,
       "apikey": $anonKey
     }
   };
var response = UrlFetchApp.fetch($url + "YOUR_QUERY_PARAMETER_FOR_POSTGREST", options);

0
投票

我构建了一个简单的 Supabase 类来从 Google Apps 脚本访问 Supabase 数据库。

在 Apps 脚本编辑器中从此处复制 Supabase 类。

您可以像这样与数据库交互:

function testSupabaseClass() {
  const key = 'your-anon-or-service-key'
  const url = 'your-supabase-database-url'
  const supabase = new Supabase(url, key)

  const tableName = 'your-table-name' // create it in supabase, make sure you have access with the key

  console.log('getRows', supabase.getRows(tableName))
  console.log('getRows with filter', supabase.getRows(tableName, 'id=eq.1'))
  console.log('insertRows', supabase.insertRows(tableName, [{ merchant: 'Aldi', amount: 24.23, category: 'groceries' }]))
  console.log('updateRow', supabase.updateRow(tableName, 'id=eq.2', { 'merchant': 'Adidas' }))
  console.log('deleteRows', supabase.deleteRows(tableName, 'merchant=eq.Aldi'))
}
© www.soinside.com 2019 - 2024. All rights reserved.