概念
用户信息
学习如何使用 Dropbox API 获取用户信息,例如账户详情和存储空间使用情况。
在本节课中,我们将探讨 users 命名空间中的一些重要接口。这些接口需要启用 account_info.read 权限。在本课中,我们将与以下接口进行交互:
get_current_accountget_space_usage
注意: 在上一节课中,生成访问令牌后,我们已授予
account_info.read权限。
获取当前账户信息
users 命名空间提供了以下接口:
/users/get_current_account。
我们可以使用此接口通过访问令牌获取用户信息。该接口需要 Bearer 认证,定义在 HTTP 请求的头部。它使用 HTTP 的 POST 请求,不接受任何参数。
下面通过代码来展示该接口的功能:
1// 在此处定义导入的库 2import fetch from 'node-fetch'; 3 4// 在此处定义 API 密钥 5const token = '{{TOKEN}}'; 6 7// 在此处定义接口 URL 8const endpointUrl = new URL('https://api.dropboxapi.com/2/users/get_current_account'); 9 10// 在此处定义请求头参数 11const headerParameters = { 12 authorization: `Bearer ${token}`, 13 contentType: 'application/json', 14}; 15 16// 设置 API 调用选项 17const options = { 18 method: 'POST', 19 headers: headerParameters, 20}; 21 22// 定义发起 API 调用的函数 23async function fetchAccount() { 24 try { 25 const response = await fetch(endpointUrl, options); 26 27 // 自定义函数:打印 API 响应 28 printResponse(response); 29 } catch (error) { 30 // 自定义函数:打印错误信息 31 printError(error); 32 } 33} 34 35// 调用函数以发起 API 调用 36fetchAccount();
上述代码中,我们执行了以下操作:
- 第 2 行: 从
node-fetch导入fetch库,用于在代码中发起网络请求。 - 第 5 行: 获取用于身份验证的
TOKEN值。 - 第 8 行: 定义请求的 URL。
- 第 11–14 行: 定义
fetch请求的headers。包含认证信息和内容类型,通常为application/json。 - 第 17–20 行: 设置 API 调用的选项。
- 第 23–33 行: 创建一个用于发起 API 调用的函数。尝试获取响应,并将响应传递给自定义函数
printResponse;若出错,则捕获异常并传递给自定义函数printError。 - 第 36 行: 调用
fetchAccount函数以发起 API 请求。
响应字段
以下是响应中一些重要字段的说明:
| 字段 | 格式 | 说明 |
|---|---|---|
| account_id | 字符串 | 与访问令牌关联的 Dropbox 账户唯一标识 ID。 |
| name | 对象 | 用户姓名的详细信息。 |
| 字符串 | 用户的电子邮件地址。 | |
| email_verified | 布尔值 | 表示用户的电子邮件地址是否已验证。 |
| profile_photo_url | 字符串 | 用户头像的 URL(如果已上传)。 |
获取存储空间使用详情
接口 /users/get_space_usage 不接收任何参数,返回用户被分配的存储空间总量以及实际使用的空间状态。
下面通过代码了解用户存储空间使用情况的更多信息:
1// 在此处定义导入的库 2import fetch from 'node-fetch'; 3 4// 在此处定义 API 密钥 5const token = '{{TOKEN}}'; 6 7// 在此处定义接口 URL 8const endpointUrl = new URL('https://api.dropboxapi.com/2/users/get_space_usage'); 9 10// 在此处定义请求头参数 11const headerParameters = { 12 authorization: `Bearer ${token}`, 13 contentType: 'application/json', 14}; 15 16// 设置 API 调用选项 17const options = { 18 method: 'POST', 19 headers: headerParameters, 20}; 21 22// 定义发起 API 调用的函数 23async function fetchStorage() { 24 try { 25 const response = await fetch(endpointUrl, options); 26 27 // 自定义函数:打印 API 响应 28 printResponse(response); 29 } catch (error) { 30 // 自定义函数:打印错误信息 31 printError(error); 32 } 33} 34 35// 调用函数以发起 API 调用 36fetchStorage();
上述代码中,我们执行了以下操作:
- 第 2 行: 从
node-fetch导入fetch库,用于发起网络请求。 - 第 5 行: 获取用于身份验证的
TOKEN值。 - 第 8 行: 定义请求的 URL。
- 第 11–14 行: 定义
fetch请求的headers。包含认证信息和内容类型,通常为application/json。 - 第 17–20 行: 设置 API 调用的选项。
- 第 23–33 行: 创建一个用于发起 API 调用的函数。尝试获取响应,并将响应传递给自定义函数
printResponse;若出错,则捕获异常并传递给自定义函数printError。 - 第 36 行: 调用
fetchStorage函数以发起 API 请求。
响应字段
以下是空间使用查询返回的各个响应字段说明:
| 字段 | 格式 | 说明 |
|---|---|---|
| used | UInt64 | 用户已使用的总存储空间(以字节为单位)。 |
| allocation | 对象 | 用户被分配的总存储空间配额。存储配额分为两种类型:个人和团队(在本例中为个人)。 |