A chatting API for kik built with Node.js, based on https://github.com/tomer8007/kik-bot-api-unofficial
THIS IS NOT AN OFFICIAL API
NPM:
npm i kik-node-api
You can use the API by creating an instance of KikClient
, you'll use it to listen
to events and send requests to kik
const KikClient = require("kik-node-api")
Kik = new KikClient({
username: "username",
password: "1234",
promptCaptchas: true,
trackUserInfo: true,
trackFriendInfo: true
})
Kik.connect()
username
: your kik account's username
password
: your kik account's password
promptCaptchas
: prompt in the console to solve captchas. If not you must handle it yourself using the event
trackUserInfo
: track users and return their usernames and display names in the events when possible
trackFriendInfo
: track friends and return their usernames and display names in the events when possible
All users are represented in a js object that looks like this:
user: {
jid: "kikteam@talk.kik.com",
username: "kikteam",
displayName: "Kik Team",
pic: "http://profilepics.cf.kik.com/luN9IXX3a4sks-RzyiC7xlK-HdE"
}
groups are represented in the following js object:
group: {
jid: "1100221067977_g@groups.kik.com",
code: "#kikbotapi",
name: "Kik Bot API Unofficial",
users: ["jid1", "jid2", "jid3"]
}
private groups have a code of null
KikClient
uses Node's Event Emitter class
to handle events, all events are attached in the following way:
Kik.on(eventname, (param1, param2) => {
//do stuff with params here
})
Below are the details of all events emitted by the KikClient
class
Kik.on("authenticated", () => {
console.log("Authenticated")
})
Kik.on("receivedroster", (groups, friends) => {
console.log(groups)
console.log(friends)
})
groups
: an array of group
objects representing the groups you are in
friends
: an array of user
objects, each representing a friend
Kik.on("receivedcaptcha", (captchaUrl) => {
console.log("Please solve captcha" + captchaUrl)
})
captchaUrl
: url to the captcha page
Kik.on("receivedjidinfo", (users) => {
console.log("We got peer info:")
console.log(users)
})
users
: an array of user
objects returned as a result of requesting jids
Kik.on("receivedgroupmsg", (group, sender, msg) => {
console.log(`Received message from ${sender.jid} in group ${group.jid}`)
})
group
: a group
object representing the group where the message was sent
sender
: a user
object representing the message sender
msg
: the received message
Kik.on("receivedgroupimg", (group, sender, img) => {
console.log(`Received image from ${sender.jid} in group ${group.jid}`)
})
group
: a group
object representing the group where the message was sent
sender
: a user
object representing the message sender
img
: a buffer
object representing the image
Kik.on("grouptyping", (group, sender, isTyping) => {
if(isTyping){
console.log(`${sender.jid} is typing in ${group.jid}`)
}else{
console.log(`${sender.jid} stopped typing in ${group.jid}`)
}
})
group
: a group
object representing the group where the message was sent
sender
: a user
object representing the message sender
isTyping
: true if the user is typing, false if he stopped
Kik.on("userleftgroup", (group, user, kickedBy) => {
console.log(`${user.jid} left the group: ${group.jid}`)
})
group
: a group
object representing the group
user
: WIP
kickedBy
: WIP
Kik.on("userjoinedgroup", (group, user, invitedBy) => {
console.log(`${user.jid} joined the group: ${group.jid}`)
})
group
: a group
object representing the group
user
: WIP
invitedBy
: WIP
Kik.on("receivedprivatemsg", (sender, msg) => {
console.log(`Received message from ${sender.jid}`)
})
sender
: a user
object representing the message sender
msg
: the received message
Kik.on("receivedprivateimg", (sender, img) => {
console.log(`Received image from ${sender.jid}`)
})
sender
: a user
object representing the message sender
img
: a buffer
object representing the image
Kik.on("privatetyping", (sender, isTyping) => {
if(isTyping){
console.log(`${sender.jid} is typing`)
}else{
console.log(`${sender.jid} stopped typing`)
}
})
sender
: a user
object representing the message sender
isTyping
: true if the user is typing, false if he stopped
Note that all callback functions can be excluded
Kik.sendGroupMessage(groupJid, msg, (delivered, read) => {
if(delivered){
console.log("Delivered")
}else if(read){
console.log("Read")
}
})
Kik.setGroupMember(groupJid, userJid, bool)
Kik.setAdmin(groupJid, userJid, bool)
Kik.setBanned(groupJid, userJid, bool)
Kik.sendPrivateMessage(userJid, msg, (delivered, read) => {
if(delivered){
console.log("Delivered")
}else if(read){
console.log("Read")
}
})