buzzk v2.0.1
๋ฟ์ง์ง
๐ ์ ๋ฐ์ดํธ ๋ด์ญ
๐ 2.0 ์ ๋ฐ์ดํธ
- ๊ณต์ API๋ฅผ ์ผ๋ถ ์ง์ํ๊ธฐ ์์ํ์ด์!
!CAUTION ์ด ๋ฒ์ ์ดํ๋ถํฐ๋ ๊ณต์ API์ ๋น๊ณต์ API๋ฅผ ํผ์ฉํ์ฌ ์ฌ์ฉํฉ๋๋ค. ๊ณต์ API๋ก ๋์ฒด ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ๋ชจ๋ ๊ณต์ API๋ฅผ ์ด์ฉํ ์์ ์ ๋๋ค.
- ๋น๊ณต์ API ์ ์ฉ ๋ชจ๋์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
- ๋น๊ณต์ API๋ก๋ง ์ด๋ฃจ์ด์ง ๋ชจ๋์ ์ฌ์ฉํ์๋ ค๋ฉด
npm install buzzk@1.11.3
โ๏ธ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋ (v.1.x -> v.2.0.0)
buzzk.auth
์ถ๊ฐ | |
---|---|
buzzk.auth |
buzzk.oauth
์ถ๊ฐ | |
---|---|
buzzk.oauth.get |
์ถ๊ฐ | |
---|---|
buzzk.oauth.refresh |
์ถ๊ฐ | |
---|---|
buzzk.channel.resolve |
buzzk.channel.get
(return).channel.description |
---|
(return).channel.isLive |
---|
๐ ์ค์น
npm install buzzk
const buzzk = require("buzzk");
๐ฅ ๋น ๋ฅธ. ์์.
const buzzk = require("buzzk");
buzzk.auth("ClientID ๊ฐ", "ClientSecret ๊ฐ");
buzzk.login("NID_AUT ์ฟ ํค ๊ฐ", "NID_SES ์ฟ ํค ๊ฐ");
const buzzkChat = buzzk.chat;
async function test () {
let chSearch = await buzzk.channel.search("๋
น๋๋ก๋ก"); //์ฑ๋ ๊ฒ์
let channel = chSearch[0]; //๊ฒ์ ๊ฒฐ๊ณผ ์ฒซ๋ฒ์งธ ์ฑ๋
const lvDetail = await buzzk.live.getDetail(channel.channelID); //ํ์ฌ ๋ฐฉ์ก ์ ๋ณด
let chat = new buzzkChat(channel.channelID);
await chat.connect(); //์ฑํ
์ฐฝ ์ฐ๊ฒฐ
let recentChat = await chat.getRecentChat(); //์ต๊ทผ ์ฑํ
๊ฐ์ ธ์ค๊ธฐ (๊ธฐ๋ณธ๊ฐ 50๊ฐ)
console.log(recentChat);
chat.onMessage(async (data) => { //์ฑํ
์ด ์์ ๋
for (let o in data) {
console.log(data[o].message);
if (data[o].message === "!ping") await chat.send("pong!");
//์ฑํ
๋ณด๋ด๊ธฐ (login ํ์๋ง ๊ฐ๋ฅ)
let userInfo = await chat.getUserInfo(data[o].author.id);
console.log(userInfo);
//์ฑํ
๋ณด๋ธ ์ ์ ์ ์ ๋ณด
}
});
chat.onDisconnect(async () => { //์ฑํ
์ฐฝ ์ฐ๊ฒฐ์ด ๋๊ฒผ์ ๋
//TODO
});
}
test();
๐ ์ฌ์ฉ๋ฒ
auth
โ Official API
buzzk.auth("ClientID ๊ฐ", "ClientSecret ๊ฐ");
https://developers.chzzk.naver.com/application ๋ค์ด๋ฒ ์น์ง์ง ๊ฐ๋ฐ์ ์ผํฐ์์ ๋ฑ๋ก ํ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. โ Official API ํ๊ธฐ๊ฐ ์๋ ๋ชจ๋ ํจ์์์ ์ฌ์ฉ๋ฉ๋๋ค.
dotenv์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ ๋งค์ฐ ๊ถ์ฅํฉ๋๋ค.
buzzk.auth(process.env.CLIENT_ID, process.env.CLIENT_SECRET);
login
buzzk.login("NID_AUT ์ฟ ํค ๊ฐ", "NID_SES ์ฟ ํค ๊ฐ");
dotenv์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ ๋งค์ฐ ๊ถ์ฅํฉ๋๋ค.
buzzk.login(process.env.NID_AUT, process.env.NID_SES);
oauth
โ Official API
let oauth = await buzzk.oauth.get("Code ๊ฐ");
console.log(oauth);
- Return - access - refresh - expireIn
โ Official API
let oauth = await buzzk.oauth.refresh("refreshToken ๊ฐ");
console.log(oauth);
- Return - access - refresh - expireIn
โ Official API
let oauth = await buzzk.oauth.resolve("accessToken ๊ฐ");
console.log(oauth);
- Return - channelID - name - follower - imageURL
channel
let chSearch = await buzzk.channel.search("๋
น๋๋ก๋ก");
console.log(chSearch);
- Return - 0 - channelID - name - description - follower - imageURL - isLive - 1 - 2 - 3 - ...
โ Official API
let channel = await buzzk.channel.get("channelID ๊ฐ");
console.log(channel);
- Return - channelID - name - follower - imageURL
await buzzk.channel.follow("channelID ๊ฐ");
await buzzk.channel.unFollow("channelID ๊ฐ");
live
const lvDetail = await buzzk.live.getDetail("channelID ๊ฐ");
console.log(lvDetail);
- Return - channelID - channel - name - imageURL - chatID - chatLimit //ํ๋ก์ ์ ์ฉ ์ฑํ ๋ฑ... - userCount - now - total - title - category - startOn - closeOn - status - polling - liveID - videoID
const lvStatus = await buzzk.live.getStatus("channelID ๊ฐ");
console.log(lvStatus);
- Return - channelID - chatID - userCount - now - total - title - status - polling
chat
const buzzkChat = buzzk.chat;
let chat = new buzzkChat("channelID ๊ฐ");
await chat.connect(); //์ฑํ
์ฐฝ ์ฐ๊ฒฐ
let recentChat = await chat.getRecentChat(๊ฐฏ์); //์ต๊ทผ ์ฑํ
๊ฐ์ ธ์ค๊ธฐ (๊ธฐ๋ณธ๊ฐ 50๊ฐ)
console.log(recentChat);
- Return - 0 - author - id - name - imageURL - hasMod //๊ด๋ฆฌ ๊ถํ์ ๊ฐ์ก๋์ง (false / true) - message - time - 1 - 2 - 3 - ...
chat.onMessage((data) => { //์ฑํ
์ด ์์ ๋
console.log(data);
for (let o in data) {
console.log(data[o].message); //๋ฉ์ธ์ง๋ง ์ ๋ถ ๊บผ๋ด๊ธฐ
}
});
- Return - 0 - author - id - name - imageURL - hasMod //๊ด๋ฆฌ ๊ถํ์ ๊ฐ์ก๋์ง (false / true) - message - time - 1 - 2 - 3 - ...
chat.onDonation((data) => { //๋๋ค์ด์
์ด ์์ ๋
console.log(data);
for (let o in data) {
console.log(data[o].amount); //ํ์ ๊ธ์ก๋ง ์ ๋ถ ๊บผ๋ด๊ธฐ
}
});
- Return - 0 - amount //ํ์ ๊ธ์ก - author - id - name - imageURL - hasMod //๊ด๋ฆฌ ๊ถํ์ ๊ฐ์ก๋์ง (false / true) - message - time - 1 - 2 - 3 - ...
chat.onDisconnect(() => { //์ฑํ
์ฐฝ ์ฐ๊ฒฐ์ด ๋๊ฒผ์ ๋
//TODO
});
await chat.send("ใ
ใ
ใ
ใ
ใ
ใ
"); //์ฑํ
๋ณด๋ด๊ธฐ (login ํ์๋ง ๊ฐ๋ฅ)
let userInfo = await chat.getUserInfo("์ ์ ์ channelID ๊ฐ");
- Return - channelID - name - imageURL - role //ex. streamer - followDate //ํ๋ก์ฐ ๋ ์ง ex. 2024-02-19 23:28:11
await chat.disconnect(); //์ฑํ
์ฐฝ ์ฐ๊ฒฐ ๋๊ธฐ
video
const videoList = await buzzk.video.getList("channelID ๊ฐ", 24); //channelID ๊ฐ, ๊ฐ์ ธ์ฌ ๊ฐฏ์
console.log(videoList);
- Return - 0 - no - id - title - category - duration - uploadOn - imageURL - trailerURL - 1 - 2 - 3 - ...
const video = await buzzk.video.get("no ๊ฐ"); //videoList ์์ return ๋ no ๊ฐ
console.log(video);
console.log(video.videoURL[720]);
- Return - id - title - category - duration - uploadOn - startOn - imageURL - trailerURL - videoURL - 144 - 720 - 1080
5 months ago
5 months ago
5 months ago
5 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago