GithubHelp home page GithubHelp logo

tomer8007 / kik-bot-api-unofficial Goto Github PK

View Code? Open in Web Editor NEW
126.0 32.0 77.0 972 KB

Python API for writing unoffical Kik bots that act like humans

License: MIT License

Python 99.63% Shell 0.29% Dockerfile 0.07%
kik kikbot kik-api python kik-messenger-platform bot

kik-bot-api-unofficial's Introduction

Kik Bot API

The Unofficial Kik Bot API is a Python library developed to automate interactions on Kik Messenger.

It's essentially a way to create bots that behave like humans on the platform. This library enables your bot to interact with the official Kik app by emulating a real smartphone client. It communicates with Kik's servers at talk1110an.kik.com:5223 over a modified version of the XMPP protocol.

This library is ideal for developers, hobbyists, and businesses who want to build automated bots to interact with users, groups, and other bots on Kik.

We do not endorse the use of this library for spamming or other malicious purposes. Please use this library responsibly.

Installation and dependencies

Make sure you have Python 3.8 or above installed on your system. You can install this library directly from GitHub:

git clone -b new https://github.com/tomer8007/kik-bot-api-unofficial
pip3 install ./kik-bot-api-unofficial

Quick Start Guide

Here's a simple example of how to use the Kik Bot API:

from kik_unofficial.client import KikClient
from kik_unofficial.callbacks import KikClientCallback
import kik_unofficial.datatypes.xmpp.chatting as chatting
from kik_unofficial.datatypes.xmpp.errors import LoginError

# This bot class handles all the callbacks from the kik client
class EchoBot(KikClientCallback):
    def __init__(self):
        # On initialization, the kik client will attempt to login to kik
        self.client = KikClient(self, "your_kik_username", "your_kik_password", enable_console_logging=True)
        self.client.wait_for_messages()

    # This method is called when the bot receives a direct message from a user
    def on_chat_message_received(self, chat_message: chatting.IncomingChatMessage):
        self.client.send_chat_message(chat_message.from_jid, f'You said "{chat_message.body}"!')
    
    # This method is called if the login fails for any reason including requiring a captcha
    def on_login_error(self, login_error: LoginError):
        if login_error.is_captcha():
            login_error.solve_captcha_wizard(self.client)

if __name__ == '__main__':
    # Creates the bot and start listening for incoming chat messages
    callback = EchoBot()
        

Please replace "your_kik_username" and "your_kik_password" with your actual Kik username and password. You also have to add the bot as a friend on Kik before you can send it messages.

You can find a similar example by running python3 examples/simple_echo_bot.py. Visit the examples directory for more examples.

Features

With the Kik Bot API, you can:

  • Log in with kik username and password, retrieve user information (such as email, name, etc).
  • Fetch chat partners information
  • Send text messages to users/groups and listen for incoming messages
  • Send and receive 'is-typing' status
  • Send and receive read receipts
  • Fetch group information (name, participants, etc.)
  • Fetch past message history
  • Administer groups (add, remove or ban members, etc)
  • Search for groups and join them (experimental feature)
  • Receive media content: camera, gallery, stickers
  • Add a kik user as a friend
  • Send images (including GIFs, using a Tenor API key)

Sending videos or recordings is not supported yet.

Captcha Solving

Once the bot starts running, you might see a message like this: To continue, complete the captcha in this URL using a browser: https://captcha.kik.com/?id=...

This means that Kik has detected that you are logging in using a new device and requires you to solve a captcha to continue. You can solve the captcha by opening the URL in a browser and following these steps:

  • Press F12 to open the developer tools
  • Open the network tab
  • Solve the captcha
  • Look for a file header that starts with captcha-url?response=[your captcha response]
  • Click on it and copy the response from the response tab
  • Paste the response in the terminal where the bot is running

Docker

After creating a bot, you can bootstrap it to run in a Docker container. This section assumes you have Docker installed on your system.

  1. Set up your environment variables. Copy the example file to a new file called .env:

    cp .env.example .env

    Note: You will need to edit the new .env file to include your bot's device ID, android ID, username, password, and JID (if you know it).

  2. Update the Dockerfile to copy your bot.py file into the container. Change the following line like so:

    - COPY examples/echo_bot.py /app/bot.py
    + COPY path/to/your/bot.py /app/bot.py

    Note: You can also copy your bot's dependencies into the container by adding a COPY line for each dependency.

  3. Deploy the container:

    docker compose up --build -d && docker attach kik-bot-api-unofficial

    Note: You only need to use --build when you first clone the repo, or if you make changes to the code.

More functionality

Before investigating the format of certain requests/responses, it's worth checking if they are already documented in the Message Formats page.

Troubleshooting

If you are on Windows and you are unable to install the lxml package, use the binary installers from PyPi here.

If you are using Termux, then use pkg install libxml2 libxslt to install lxml and pkg install zlib libpng libjpeg-turbo to install pillow dependencies.

Contact

For any questions, suggestions, or discussions about the Kik Bot API, feel free to open an issue on the GitHub repository.

kik-bot-api-unofficial's People

Contributors

3dik avatar artificiangel avatar bluemods avatar cheshirecaat avatar feba66 avatar hunterbeach avatar jaapp- avatar kandnub avatar karlebot avatar pointlessuser avatar qlg1 avatar sokkit-io avatar sprt avatar thegreatcodeholio avatar tomer8007 avatar wolfieanmol avatar yassienw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kik-bot-api-unofficial's Issues

Not really an issue but a pull request.

<iq type="set" id="[GUID]">
    <query xmlns="kik:groups:admin">
	<g jid="[GUID]">
	    <n>[GROUPNAME]</n>
	</g>
    </query>
</iq>

This will change the group name of the groups if you are an admin

Had to work on XMPP's for my project so thought I would post it here so other people can get help from it :)

Include __init__ file in protobuf folder

Hi!

I was getting the following error after installing it locally

kikclient.py", line 16, in <module>
    from kik_unofficial.protobuf import group_search_service_pb2
ModuleNotFoundError: No module named 'kik_unofficial.protobuf'

I fixed it by creating a file __init__.py in the protobuf folder

Interactive_client example not fethcing peers.

When I run the interactive client code and type /f it just sends the roster request but never receives an response. I can only see the following log and nothing after that. Can you please help me with whats the issue.

[2018-08-11 21:27:19,387] INFO   (thread Kik Connection): [+] Authenticated successfully.
-Usage-

/c [first letters of username]  -  Chat with peer
/f  -  List peers

Type a line to send a message.

/f
[2018-08-11 21:28:11,731] INFO   (thread Kik Connection): [+] Requesting roster (list of chat partners)...

Although echo_bot and register_client are working fine

Can't get response

Hi
I try to use any method (get roster, find group etc) after login

Authorization is correct, I see the answer
But after sending any other request, I can not get an answer
Either it is not there, or the reading goes on indefinitely, or the reader says that the end of the stream is reached

What can be wrong?

Can't auth 2 or more accounts

Hi, I use my own library, which I wrote on the basis of those found on the github
The principle of work is the same, but I have a problem

When I authorize only 1 account - everything is fine

if I try to authorize 2 or more in a row there are errors
[R]error code="406"
type="modify"
not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"
password-mismatch xmlns="kik:error"
/error
[R] k ok="0" badhost k

But password is correct!
I know that the library is different, but what could be the reason?

Can't generate own proto

Hello!
I asked about the group_search_service.

I tried to compile the file that you dropped me, but found errors
Where to get the missing links?)
Error photo:
image

Can you write step by step how to do it correctly? And how did you do it?

Can my bot be banned because of hard coded timestamp?

I see that timestamp(ts) is hard coded https://github.com/tomer8007/kik-bot-api-unofficial/blob/master/kik_unofficial/kikclient.py#L152 Why is it so? When I use current unix timestamp, my bot fails.

Traceback (most recent call last):
  File "examples/send_message.py", line 30, in <module>
    main()
  File "examples/send_message.py", line 12, in main
    chat_partners = kik_client.get_chat_partners()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/kik_unofficial/kikclient.py", line 196, in get_chat_partners
    self._make_request(data)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/kik_unofficial/kikclient.py", line 666, in _make_request
    response = self._get_response()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/kik_unofficial/kikclient.py", line 672, in _get_response
    raise KikEmptyResponseException(response, "Kik server returned empty response")
kik_unofficial.kik_exceptions.KikEmptyResponseException: Kik server returned empty response

Can my bot be banned because of I don't change my timestamp?

Capturing traffic.

Hello!

I have locked at you code for Kik API. How do you take endpoint for API? Thats amazing.
I would like to write kik bot too, but i dont know how can i capture traffic and enpoints.

Can you help me with this? I will be very grateful!

Please open wiki so we can log message formats

When your bot gets added to a group (the bot has chatted with the inviter, so it gets added immediately)

<message from="[NUMBERS][email protected]" to="[email protected]" type="groupchat" id="[GUID]" xmlns="jabber:client">
    <kik qos="true" app="all" hop="true" timestamp="1510865418472" push="false"/>
    <request d="false" r="false" xmlns="kik:message:receipt"/>
    <roster/>
    <g is-public="true" jid="[NUMBERS][email protected]"><!-- NUMBERS same as message.from -->
        <code>#[PUBLIC_GROUP_HASH]</code>
        <n>Bot testing ground</n>
        <pic ts="1505911808105">http://profilepics.cf.kik.com/[REDACTED]</pic>
        <m>[JID]@talk.kik.com</m><!-- The jid of the bot is also in the list -->
        <m>[JID]@talk.kik.com</m><!-- Some other member -->
        <m s="1" a="1">[JID]@talk.kik.com</m><!-- Owner account, S=owner A=admin -->
    </g>
    <sysmsg xmlns="kik:msg:info">[FIRSTNAME] [LASTNAME] has added you to the chat</sysmsg>
</message>

When someone leaves a (public) group your bot is a member of.

<message type="groupchat" xmlns="jabber:client" id="[GUID]" from="[NUMBERS][email protected]" to="[BOT_JID]@talk.kik.com"><!-- JID of group -->
	<kik timestamp="1510911460608" push="false" app="all" qos="true" hop="true"/>
	<request d="false" r="false" xmlns="kik:message:receipt"/>
	<roster/>
	<g jid="[NUMBERS][email protected]"> <!-- JID of group -->
		<l>[USER_JID]@talk.kik.com</l><!-- JID of user that left -->
	</g>
	<status jid="[USER_JID]@talk.kik.com">[FIRSTNAME] [LASTNAME] has left the chat</status>
</message>

When someone starts or is typing:

<message id="[GUID]" type="groupchat" xmlns="kik:groups" from="[TYPING_USER_JID]@talk.kik.com" to="[BOT_JID]@talk.kik.com">
	<pb/>
	<kik timestamp="1510911793198" push="false" app="chat" qos="false" hop="true"/>
	<is-typing val="true"/>
	<g jid="[GROUP_JID]@groups.kik.com"/><!-- the group the user is typing in -->
</message>

When someone stops typing

<message id="[GUID]" type="groupchat" xmlns="kik:groups" from="[TYPING_USER_JID]@talk.kik.com" to="[BOT_JID]@talk.kik.com">
	<pb/>
	<kik timestamp="1510911793414" push="false" app="chat" qos="false" hop="true"/>
	<is-typing val="false"/>
	<g jid="[GROUP_JID]@groups.kik.com"/>
</message>

When someone sends a message in a group:

<message id="[GUID]" type="groupchat" cts="1510911505345" xmlns="kik:groups" from="[USER_JID]@talk.kik.com" to="[BOT_JID]@talk.kik.com">
	<body>Is vervelend... aan de plus kant ik weet nu hoe het eruit ziet als iemand we gaat...</body><!-- This is the original message as captured during the test -->
	<pb/>
	<preview>Is vervele...</preview><!-- some shortened version of the body -->
	<kik timestamp="1510911505345" push="true" app="chat" qos="true" hop="true"/>
	<request d="true" r="true" xmlns="kik:message:receipt"/>
	<ri/>
	<g jid="[GROUP_JID]@groups.kik.com"/><!-- group the message was posted in -->
</message>

SafetyNet

I've been having the safetynet issue too. Here's steps to reproduce for me:

  1. Use new device_id and android_id to isolate the issue
  2. Run register bot to create a new account
  3. Account creation (or login) succeeds
  4. The follow messages is received:
    <kik timestamp="1530632332578" app="all" push="false" qos="false" hop="true" />
    <request r="false" xmlns="kik:message:receipt" d="false" />
    <xiphias-mobileremote-call method="TriggerSafetyNetCheck" service="mobileremote.antispam.safetynet.v1.MobileSafetyNet">
        <body />
    </xiphias-mobileremote-call>
</message>
  1. A couple of seconds later the connection is closed from Kik's end.

I haven't recorded my phone for account creation yet.

Bad ack id

If I use a for loop to send a message to my other account, I get an error after sometime saying "Failed. Bad ack id"

Verify kik account

Hi, How i can do this request?
#19

what is signature and kik-pub-key

at what point should I create this request?
I need it to group joining

Unknown message type

Hey! It's me again. I'm working with the bot, I want to make it so whenever someone joins the group, it will send the rules! Whenever I do this however, I get an error

Error when using fresh account because of missing key

When creating a fresh account and not having any chats, you can't call any methods without running into errors.

For example, executing the example code from the README.MD results in following error:

 File "test.py", line 4, in <module>
    kik.send_message("other_kik_username", "Hello from bot!")
  File "/some/path/kik_unofficial/kikclient.py", line 365, in send_message
    jid = username if groupchat else self._resolve_username(username)
  File "/some/path/kik-bot-api-unofficial/kik_unofficial/kikclient.py", line 801, in _resolve_username
    raise Exception("Failed to convert username to kik node")

This is because in kikclient.py on line 789 function _resolve_username expects self.user_info to have the key chat_list (which a fresh account of course doesn't have).

This can be easily fixed by putting a check beforehand, such as

 if self.user_info is not None:
            if "chat_list" in self.user_info: # -> fix
                for node in self.user_info["chat_list"]:
                    if node[:node.rfind('_')] == username:
                        return node + jid_domain

What is the group_search_service_pb2.py?

Hi, i working only on C# and i don't quite understand what this file is for

I thought that the methods of obtaining and processing results after searching for groups
At the same time, I ran into a problem - I was able to repeat the request for a C # group search, but I can not figure out how to get a response
Does this mean that I need to transfer the code from this file to C #?

Captcha problem

I'm having this output dump when i try to login

[2018-08-24 23:11:42,226] DEBUG (thread Kik Connection): [+] Sending raw data: b'ceticbita2b6d25f7305e955813485749bdc770962030843678b7376a707ca3d11e87837utm_source=google-play&utm_medium=organic3102601494078709023androidgeneric114.0.0.11130en_US190CAN849d4ffb0c020de7Samsung Galaxy S5 - 4.4.4 - API 19 - 1080x1920'
[2018-08-24 23:11:42,364] DEBUG (thread Kik Connection): [+] Received raw data: b''
[2018-08-24 23:11:42,540] DEBUG (thread Kik Connection): [+] Received raw data: b'ceticbita2b6d25f7305e955813485749bdc770962030843678b7376a707ca3d11e87837utm_source=google-play&utm_medium=organic3102601494078709023androidgeneric114.0.0.11130en_US190CAN849d4ffb0c020de7Samsung Galaxy S5 - 4.4.4 - API 19 - 1080x1920https://captcha.kik.com/?id=3-CAISnwFe7F0O9kA9SdwdWI5LRIJGCYmcWCBTngnzoKxRHvfsfrvPKun-urpExh6au9OGkGQQxlFQvtZiXNK0zFwzcRZIQ8mKluTgFmYTcIR-K8t6JMFLClhDQcghY0mtQ-63LR5kD81xfyFmvDCeaD1dIYwYIGbZlhSTXB7dLtCWjJme8yosKi4GKWSrlzL7OcQVAuziOFhsBRjSlclsHmpmRmkaEK0FD0hhLvuhDZYjquW-f_QiIPjwm1jTbvwJB-hLx4VjN6D2BfunWap-bInYUDc5YjlMKhCUaMtQMKhqkpuZ3W4T9dGq&amp;lang=en'
[2018-08-24 23:11:42,547] INFO (thread Kik Connection): [-] Login error: a Captcha is required to continue

If it helps anything. Apparently captcha blocks it from logging in

Why can't I change the version number?

I want to change the version number in case kik decides to ban all bots running on that version like they did before few weeks ago but every time I change it I either get a captcha or it stops working all of the sudden (yes I know how to generate a hash for the right version but that didn't help either I tried to change it to 11.36.0.18816 with this classes.dex hash 2UIy3Mfb27X3WOC9tGSR7W7uBwU= and its result was 7Wf/GLP3AX8UKDjL29jsxwp071A= ). Any idea how can I fix this problem?

About kik certs, auth and group joining

Hi, i find some information about kik:auth:cert from issue #62

I found structures:
(Account adrianaabram23:1223344):
-Pub key on auth: https://pastebin.com/GnTA5B3b (check kik.auth.gen.pub.key)
-Some private put requests after auth: https://pastebin.com/PXbHpCgt
-When i open group searching: https://pastebin.com/tchLsh7K (check kik.auth.manager.store.signature)
-Some cryptographic: https://pastebin.com/aFpt4Dgu

I need help to understand how both parameters are created and what they depend on

P.S.

Update about group joining:

the join method does not always return 400 error
on one of the tested accounts there was no error - just an empty answer body
in this case, the account did join the groups, but I did not do any additional actions

on the remaining 500/400 error
if an error occurred - no accounts was entered into the groups

Multiple Instances

I have been trying to get the bot working with multiple people messaging it at once with no luck.

Has anyone been trying this?

Receiving a GIF results in an NotImplementedError (crashes after so many errors)

[2018-08-14 16:35:38,724] ERROR (thread Kik Connection): Exception in callback KikClient._on_new_data_received(b'<message fr..."/></message>') handle: <Handle KikClient._on_new_data_received(b'<message fr..."/></message>')> Traceback (most recent call last): File "C:\Users\RM\AppData\Local\Programs\Python\Python37-32\lib\asyncio\events.py", line 88, in _run self._context.run(self._callback, *self._args) File "C:\Users\RM\Desktop\kik-bot-api-unofficial-new\kik_unofficial\client.py", line 247, in _on_new_data_received self._handle_xmpp_message(xml_element) File "C:\Users\RM\Desktop\kik-bot-api-unofficial-new\kik_unofficial\client.py", line 291, in _handle_xmpp_message self.callback.on_group_receipts_received(chatting.IncomingGroupReceiptsEvent(xmpp_message)) File "C:\Users\RM\Desktop\kik-bot-api-unofficial-new\kik_unofficial\datatypes\xmpp\chatting.py", line 215, in __init__ self.group_jid = data.g['jid'] TypeError: 'NoneType' object is not subscriptable [2018-08-14 16:35:38,744] ERROR (thread Kik Connection): Exception in callback KikClient._on_new_data_received(b'<message fr...sg></message>') handle: <Handle KikClient._on_new_data_received(b'<message fr...sg></message>')> Traceback (most recent call last): File "C:\Users\RM\AppData\Local\Programs\Python\Python37-32\lib\asyncio\events.py", line 88, in _run self._context.run(self._callback, *self._args) File "C:\Users\RM\Desktop\kik-bot-api-unofficial-new\kik_unofficial\client.py", line 247, in _on_new_data_received self._handle_xmpp_message(xml_element) File "C:\Users\RM\Desktop\kik-bot-api-unofficial-new\kik_unofficial\client.py", line 294, in _handle_xmpp_message self.xml_namespace_handlers['jabber:client'].handle(xmpp_message) File "C:\Users\RM\Desktop\kik-bot-api-unofficial-new\kik_unofficial\xmlns_handlers.py", line 82, in handle raise NotImplementedError NotImplementedError

Сaptcha at authorization

Why does every time authorize each account, CAPTCHA appears?
Is it the Device and Android ID or the kik's version?

 private string device_id = "167da12427ee4dc4a36b40e8debafc25";
 private string andr_id = "1fba6fa0a899e775";
 private string kik_version = "11.1.1.12218";

Kicking someone from group results in an error

This error only happens after removing someone from a group. The error happens regardless of who does the kick.

ERROR (thread Kik Connection): Exception in callback KikClient._on_new_data_received(b'<iq type="e...</error></iq>') handle: <Handle KikClient._on_new_data_received(b'<iq type="e...</error></iq>')>

Traceback (most recent call last): File "C:\Users\RM\AppData\Local\Programs\Python\Python37-32\lib\asyncio\events.py", line 88, in _run self._context.run(self._callback, *self._args) File "C:\Users\RM\AppData\Local\Programs\Python\Python37-32\lib\site-packages\kik_unofficial\client.py", line 245, in _on_new_data_received self._handle_received_iq_element(xml_element) File "C:\Users\RM\AppData\Local\Programs\Python\Python37-32\lib\site-packages\kik_unofficial\client.py", line 279, in _handle_received_iq_element self._handle_xmlns(iq_element.query['xmlns'], iq_element) File "C:\Users\RM\AppData\Local\Programs\Python\Python37-32\lib\site-packages\kik_unofficial\client.py", line 307, in _handle_xmlns raise NotImplementedError NotImplementedError

Getting 406 error while logging in

Hi! I received 406 error after login attempt. Any idea?

[-] Kik error code: 406
Traceback (most recent call last):
<error code="406" type="modify">
File "/kik-bot-api-unofficial/examples/send_message.py", line 29, in
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
main()
</error>

Password mismatch

Every time I try to sign in get this error. username/password pair is correct, of course.
[2018-06-16 16:18:56,880] INFO (thread Kik Connection): [-] Login error: Password mismatch

Receiving images

I have made a handler for receiving image messages in one-on-one chats that I plan on making a pull request for, but I can't seem to figure out group picture messages. When receiving a group picture message, nothing happens, not even raising a NotImplementedError. Does anybody have any ideas why this could be or has a capture of a group picture message?

Automatic registration

hello!

this seems very cool, i might use it myself :) (and even contribute back if needed)

only question is, does this take care of auto register and stuff? understandable if not :)

either way thanks for making this public!

Getting Group Members

Is there a way to get a list of Group members ? When I apply request_roster the Output is like:
Roster:
Group(jid=[jid][email protected], name=Test Group, code=#justtestit, members=7)
Nxxx Hx (nxxx_xx_xx)
Kik Team (kikteam)

But I dont get a list of the (seven) members of the group

Classes and callbacks

There's a couple of issues with the current codebase. First of all some methods are long and messy. It would be nice to do a major refactor. Let's gather some ideas.

  • Use classes for users, groups, messages. Peer (with jid) is extended by User and Group, Group is extended by PublicGroup and PrivateGroup.
  • Instead of the user having to figure out the type of the next message, let the user extend a KikClient and implement callback functions for the ones they're going to use. E.g. for a simple bot this would result in something like this:
class MyKikBot(KikClient):
    def on_group_message(self, group_message: GroupMessage):
        group.send(GroupMessage("You sent: {}".format(group_message.message)))
  • The current API can't send and receive messages simultaneously because they both "claim" the socket. The way around this is to keep track of message ids, do sending and receiving asynchronously, this would go along nicely with previous point.

Maybe I could make a basic version of this. Anyway, we can use this thread for future plans.

Can't get a list of members

I am trying to get a list of my group but keep getting an unknown message error at every event that would provide the information I need.

Find group

Hi, is it possible to find group by keyword?
For example "games" and get the list as:

  • games + group_id
  • gamesgroup + group_id
    etc
    I did not find this information on the wiki
    I'm trying to intercept traffic through a fiddler, but I can not yet

Can't get chat partners

when I try to get_chat_partners I am almost always met with the error UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcd in position 16383: unexpected end of data or AttributeError: 'NoneType' object has no attribute 'children'

Error during Sign-UP with captcha

What is the format of the captcha result as done by the example expected to be?

The response token from the KIK server looks something like this:

xxxxxxxxxxxx.xxxxxxxxxxxxx|r=us-west-2|metabgclr=transparent|metatimeclr=%xxxxxx|meta=x|guitextcolor=%xxxxxx|metaiconclr=transparent|lang=en|pk=xxxxx-xxxxx-xx-xx-xxxx|injs=https://cdn.funcaptcha.com/fc/assets/graphics/kik/scripts/kik_help_8.js|at=xx|ps=id|ht=x|atp=x|cdn_url=https://cdn.funcaptcha.com/fc|lurl=https://audio-us-west-2.funcaptcha.com|surl=https://funcaptcha.com

I tried inputing all of it with no success.

this is a bad idea

I think having this publicly available was a cool idea to start but clearly needs to stop. Every account that's ever been logged into your client is getting deleted and the client is just going to get patched and end up getting other clients patched and essentially ruining the fun of the development community on Kik. Plus it's practically a trap now since anyone logging into it gets banned.

Sniffing traffic

I know this is old and I don't know if you still check this from time to time anyway...

I tried sniffing traffic from the kik api using burp with the NOPE proxy for non http protocols, I installed the burp certificate on my phone, unfortunately it seems KIK messenger is using ssl pinning which I can't remove yet (I didn't start reverse engineering, lazy mofo).

Yet the version you're using for this is the same as I'm using (11.1.1.12 something) and you succeeded at sniffing traffic, so did you have to ssl unpin it or it's not ssl pinned and it's not working for me for some other reason ?

Maybe I should try with MITM or SSLstrip or an older version ?

This is professional work that I admire hence why I'm trying to learn to.

Thanks sir.

Get messages by username

is there anyway to collect all the messages i had with a person by that persons username. i am new to python. Thanks in advance.

Latest Kik HMAC

This is the HMAC info on the latest kik version that came out yesterday (14.0) seems like they ended 13 after the 13.4 update.

Kik version: 14.0.0.11130
Classes Dex: 9nPRnohIOTbby7wU1+IVDqDmQiQ=
Hmac: zFu88/RkSPvAidkDT/JRkrUdzyY=

Captcha at login

Since recently I haven't been able to login without filling in a captcha where this used to be possible.

Some things I noted:

  • Signing in with a node provided works just fine
  • Derandomizing android_id and device_id doesn't fix the issue
  • The problem occurs for both existing and newly created accounts

I'm not sure on what conditions they base this captcha requirement.

Message seems to be sent but not delivered.

I tried using your API to send a simple text message to myself using my other accounts credentials in the code, but it says "Message seems to be sent but not delivered." When I was trying to send this message to my original account, my original was online as you said it should be.

Sending images

Hi! Thank you for great API. Do you plan to add sending multimedia?
Maybe somebody have a function for sending images?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.