📅  最后修改于: 2023-12-03 15:39:12.876000             🧑  作者: Mango
在本文中,我们将探讨如何使用 TypeScript 和 Google Sheets API 将 Luno 的定价信息导入到 Google Sheets 中。
在开始之前,您需要完成以下准备工作:
在开始编写代码之前,让我们先安装一些必要的依赖项:
npm install google-auth-library googleapis
npm install -D @types/google-auth-library @types/googleapis
这里我们使用了 google-auth-library
和 googleapis
两个依赖项,前者用于处理授权,后者用于操作 Google Sheets API。
在使用 Google Sheets API 之前,您需要先获取授权。这一步需要一些交互,并且需要您自行完成。
client_email
复制到您的 Google Sheets 文件的共享人列表中。完成上述步骤后,您可以使用以下代码生成一个 authorized
的客户端:
import { google } from 'googleapis';
import { JWT } from 'google-auth-library';
const auth = new JWT({
keyFile: 'path/to/your/keyfile.json',
scopes: [
'https://www.googleapis.com/auth/spreadsheets',
],
});
const sheets = google.sheets({
version: 'v4',
auth: auth,
});
通过 Luno 的 API,我们可以轻松获取定价数据。以下是一个获取 BTC/USD 定价数据的示例:
import axios from 'axios';
const result = await axios.get(
'https://api.luno.com/api/1/ticker?pair=XBTUSD'
);
const { ask, bid } = result.data;
const price = (ask + bid) / 2;
我们可以使用 sheets.spreadsheets.values.update
方法将数据导入到 Google Sheets 中。以下是一个将 BTC/USD 定价数据导入到 Google Sheets 的示例:
const spreadsheetId = 'SPREADSHEET_ID_HERE';
const range = 'Sheet1!A2:B2';
await sheets.spreadsheets.values.update({
spreadsheetId: spreadsheetId,
range: range,
valueInputOption: 'RAW',
requestBody: {
values: [
[new Date().toISOString(), price],
],
},
});
这里我们假设您的工作簿只有一个工作表,并且要将数据写入第一个工作表的第二行。
下面是将 Luno 定价导入 Google Sheets 的完整示例:
import { google } from 'googleapis';
import { JWT } from 'google-auth-library';
import axios from 'axios';
const auth = new JWT({
keyFile: 'path/to/your/keyfile.json',
scopes: [
'https://www.googleapis.com/auth/spreadsheets',
],
});
const sheets = google.sheets({
version: 'v4',
auth: auth,
});
const spreadsheetId = 'SPREADSHEET_ID_HERE';
const range = 'Sheet1!A2:B2';
const result = await axios.get(
'https://api.luno.com/api/1/ticker?pair=XBTUSD'
);
const { ask, bid } = result.data;
const price = (ask + bid) / 2;
await sheets.spreadsheets.values.update({
spreadsheetId: spreadsheetId,
range: range,
valueInputOption: 'RAW',
requestBody: {
values: [
[new Date().toISOString(), price],
],
},
});
在本文中,我们学习了如何使用 TypeScript 和 Google Sheets API 将 Luno 的定价信息导入到 Google Sheets 中。通过这个方法,您可以定期更新工作簿中的数据,以方便跟踪价格变化,收集咨询信息等。