VK 是俄罗斯最大的社交网络,与 Facebook 和 Twitter 类似,它也提供了一系列的 API。npm 包 vk-node-sdk 提供了使用 VK API 的 Node.js 接口,可以方便快捷地在 Node.js 项目中调用 VK API。本文将详细介绍如何在 Node.js 项目中使用 vk-node-sdk,帮助读者深入了解 VK API 并快速上手。
安装 vk-node-sdk
使用 npm 可以很方便地安装 vk-node-sdk。
npm install vk-node-sdk --save
获取认证和授权信息
在使用 VK API 之前,需要先获取认证和授权信息。具体来说,需要获取以下信息:
- 你的应用程序 ID:在 VK 开发者页面创建应用程序并获取应用 ID。
- 访问令牌:为了使用 VK API,需要进行授权并获得访问令牌。访问令牌可以使用 OAuth 2.0 授权流程获取。可以使用 vk-auth 模块来方便地获取访问令牌。
-- -------------------- ---- ------- ----- ------ - ------------------- ----- ------ - --- -------- ------ -------------- ---------- ------------------ ------------ ---------------------------- ------ ------------- --- -- ------ ----- -------- - ------------------------------ --------- ---------- -- ------- -------------------------
用户将在浏览器中看到一个 VK 登录和授权页面。如果用户授权了应用程序,则将被重定向至上面指定的 URL,并包含授权代码。
const code = ''; // 从重定向页面中获取授权代码 // 根据授权代码获取访问令牌 const accessToken = await vkAuth.getAccessToken(code);
成功获取访问令牌后,就可以使用 vk-node-sdk 调用 VK API 了。
使用 vk-node-sdk
安装 vk-node-sdk 后可以很方便地使用它调用 VK API。
首先,需要创建 VK 实例。
const VK = require('vk-node-sdk'); const vk = new VK({ accessToken: 'YOUR_ACCESS_TOKEN', apiVersion: '5.130', });
然后,可以使用实例调用 VK API。例如,可以调用 users.get 方法获取用户信息。
-- -------------------- ---- ------- ----- -------- ----------- - ----- ---------- ------- - ----- -------------------- - --------- --- ------- ----------- --- ------ ----- - ----- ------ - ---- ----- ---- - ----- ---------------- ------------------ -- ---- -- --- -- -- ----------- -------- -- ---------- -------- -- ---------- ------ -- ------------------ ----- -- --------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ---------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ---------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ---------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- --------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ------- - -- -
可以在调用方法时传递参数,例如可以在调用 users.get 方法时传递 id 和 fields 参数。
const userId = '1'; const fields = 'photo_50'; const {response: [user]} = await vk.call('users.get', {user_ids: userId, fields}); console.log(user); // 输出:{ id: 1, first_name: 'Павел', last_name: 'Дуров', is_closed: false, can_access_closed: true, photo_50: 'https://sun1-84.userapi.com/s/v1/ig2/9DvHaJ8W5PCLZJ-SLZnSDptp_MVPibwDWYHWyCNmvp6wiX9AuRGoQ6cXA0gAwjOR2JHvO-fWcB8Gy-XIRJ5O5OvX.jpg?size=50x0&quality=96&crop=0,0,162,162&ava=1' }
可以使用 vk.call 方法调用所有 VK API 方法,例如,以下代码将获取当前授权用户的好友列表。
async function getFriends() { const {response: {items: friends}} = await vk.call('friends.get', {fields: 'photo_50'}); return friends; } const friends = await getFriends(); console.log(friends);
总结
本文介绍了如何使用 npm 包 vk-node-sdk 调用 VK API,包含获取认证和授权信息、使用 vk-node-sdk 调用 VK API 等内容。其中详细介绍了获取授权和访问令牌的过程,以及使用 vk-node-sdk 的各种方法。读者可以根据本文的内容和示例代码深入了解 VK API 并快速上手。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562cb81e8991b448e0145