Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notice: This project is unmaintained #613

Open
madsmtm opened this issue Sep 23, 2020 · 26 comments
Open

Notice: This project is unmaintained #613

madsmtm opened this issue Sep 23, 2020 · 26 comments

Comments

@madsmtm
Copy link
Member

madsmtm commented Sep 23, 2020

Hey everyone.

As you might have noticed, I haven't made any progress on this project since some time in June, and haven't really answered issues long before that.

I've just felt burnt out from everything relating to Facebook. It's just really dissatisfying to work on one login workaround/hackfix to the next, and never really getting anything done elsewhere. On top of that, I find that my studies take more and more of my free time.

So slowly, my GitHub notifications and emails have just been growing, while I haven't been able to muster the energy to deal with it - my sincere apologies to everyone that I haven't answered!

So in short, I've decided to "resign" from my post as maintainer of this project.

As noted in #390, I haven't been able to get in contact with @carpedm20 (no hard feelings, this issue is evident that I know how hard it can be), so I can't give someone else "Collaborator" rights.

Therefore, if you would like to take the lead, a fork might be preferred. If you would like me to reference your fork in the README, and maybe even transfer push rights in PyPI to you, please get in touch on this thread (I'll try to follow this one 😉).

Update: @carpedm20 responded and moved the repo to an organization, see #613 (comment) 🎉 - so I can give someone else "Collaborator" rights if they want to take over.

Before I finish, I would like to thank everyone who helped make this project what it has become; everyone who has reported an issue, and has kept me interested in the project, the contributors, that have worked with me to resolve tons of problems, and @carpedm20 who gave me the oppurtinity to become a maintainer in the first place #133 (comment). It has honestly been a great learning experience.

Thank you!

@madsmtm madsmtm pinned this issue Sep 23, 2020
@madsmtm
Copy link
Member Author

madsmtm commented Sep 23, 2020

Notes to the future maintainer (or myself, if I get back at it):

  • Make the login process work in a stable way.
    • Verify that the act cookie is not set by something else (Probably in Javascript, so figure out how it's set)
    • Add some kind of fallback-system, so that when method 1 for logging in fails, we try method 2.
    • Perhaps add a method such as Session.from_firefox, where it reads session information from the user's browser?
    • Or maybe something using Selenium?
  • Keep contact with and take inspiration from similar projects.

@TheLastGimbus
Copy link
Contributor

Really sorry to hear that! I had couple of really fun bots made with it, and was just in the middle of migrating one of them to v2... But I totally understand that fixing issues facebook forever changing their login isn't fun!

Yes, I would want, in some future, to make such library in Dart - would then be a maintainer of it for some time. I would be really glad if you could then catch up with me to tell me how to even begin making it - what tools did you use to reverse-engineer messenger etc.
If any of above libraries are actively maintained, I will probably inspire from them

Good luck with your future projects - but not gonna lie, I really wished that you will get it to stable 2.0 💔

@lonkelle
Copy link

lonkelle commented Sep 27, 2020

I wouldn't mind taking this over in January (if I can). But first of all, I need to know if this is in an a current workable state and if not, what needs to be done. I saw authentication changes in your last note - is that the barring constraint from this working rn? If so, could you tell me what you know about it?

@TheLastGimbus
Copy link
Contributor

I've just migrated one of my project to 2.0.0a5, and everything what I needed worked fine (getting unread/pending messages, receiving/sending/reacting to messages). Looks like it's in the state of "it works, but things need to be finished and polished and tested"

@lonkelle
Copy link

lonkelle commented Sep 27, 2020

Weird, is Facebook only using it's new "token" login security for some accounts then I wonder (which is why @madsmtm said on his todo: Add some kind of fallback-system, so that when method 1 for logging in fails, we try method 2.) because this is a real problem that someone solved with puppeteer it looks like:

#582

@madsmtm
Copy link
Member Author

madsmtm commented Sep 28, 2020

I need to know if this is in an a current workable state and if not, what needs to be done

It's been a while, but I think it's mostly the authentication which is problematic. The MQTT websocket connection also wasn't really that stable, I would have liked to make that more robust.

I think API-wise I actually got pretty close to where I wanted to be:

  • A clear, type-wise distinction between different types of threads and their capabilities (so calling user.set_title would be invalid, since set_title is only available on Group).
  • A general cleanup of old warts (for example the ThreadColor and MessageReaction enums were fundamentally wrong).
  • A way to express events as objects instead of function calls.
  • And much more exhaustive testing.

There were a few remaining things, for example:

  • ThreadABC.send_text returned a str while it should probably return a Message, a MessageEvent or even just an Event with the relevant data. The yet unmerged branch consolidate-events is a step closer in that direction.
  • Page support is terrible.
    • Maybe a split between a Page/User and a OneToOneThread would have been the way forward.
  • Marketplace support is non-existent.
  • Documentation is still, as always, quite lacking.

Thanks for the interest.

@madsmtm
Copy link
Member Author

madsmtm commented Sep 28, 2020

I found an old document called quirks.md that I probably intended to document somewhere:

  • createPlan doesn't seem to limit the amount of characters?
  • changeNickname will allow setting the nickname for anybody, when in a single user thread
  • @mentions don't check the type of the thing it's referring to (so it can refer to a group thread)
    • And maybe also people who's not in the thread?
  • Everything about KaTeX
  • Partial markdown support
  • Character limit: 20000
  • Two hearts: "When you send a message with the one that's from the card games, it's sometimes converted into the other one"
  • Colours in small box vs. full window?

@carpedm20
Copy link
Collaborator

Hi @madsmtm

I'm sorry for the late reply to this issue. I found that you have done so much great contribution to this project and tried hard to reach me out. I don't regularly check my old repos so I didn't notice that I am the bottleneck of this project for more than a year. I just created an organization and moved the repo and send invitations to you and @kapi2289. I'm not sure whether you still are interested in maintaining this repo but hope this makes us find another person who can keep this project moving on.

Again, I am sincerely sorry for all inconvenience that I made and thank you for your hard work.

Taehoon.

@lonkelle
Copy link

@carpedm20 I’ll wait to see how @madsmtm feels. But I can pick up development in Jan of 2021 if they feel like they can’t start development back up! Let me know guys. ☺️

@madsmtm
Copy link
Member Author

madsmtm commented Oct 2, 2020

Amazing @carpedm20, no worries 'bout the late reply, just thanks!

This actually helps a lot, by making me feel less "alone" on the project. Still will need some time to find the motivation to work on the project myself (provided I do ever get back at it).

But now I actually can give "Collaborator" rights to someone else, so I will do that, @lonkle you can just say so when January arrives - maybe we could even speak online or similar when the time comes.

@TimLChan
Copy link
Contributor

TimLChan commented Oct 2, 2020

Ah darn, sad to see you go, but all the best in the future 👍

Since it's hacktoberfest (a.k.a the time when I usually make commits), I can try piece together something for #582, my bots that run on fbchat v1 and v2 are both logging in fine.

I can't guarantee it'll make it to this repo but hopefully it'll be available on my fork.

@xaadu
Copy link
Contributor

xaadu commented Oct 13, 2020

@madsmtm how can I contact you in person? Any social platform or amywhere? I've built a paid bot from it and the bot would be dead If the project stays dead. I need to contact with you. Respond please!

@madsmtm
Copy link
Member Author

madsmtm commented Oct 16, 2020

Hi @xaadu.

Sorry to hear that this might hurt you financially - didn't think there would actually be someone out there using it as such, so didn't consider that.

That said, I won't take responsibility for it; maintaining this was after all just a hobby project for me. If keeping this project alive is important to you, perhaps you could consider offering to contribute? 😉

Anyway, if need be, you can contact me privately by email (can be found on my profile), but I would prefer having discussions in the open.

@lonkelle
Copy link

@xaadu Yeah, having the discussion on this ticket is probably for the best. I, and others, have expressed interest in taking up the project. You can be part of the team keeping this project alive! ☺️

@xaadu
Copy link
Contributor

xaadu commented Oct 16, 2020

Hey @lonkle and @madsmtm I'd love to contribute! But I don't have knowledge in Python and the project enough to maintain the project, but If someone can explain, I might be able to help a little.

NB: I might have close to zero knowledge about this project and its overall system.

@xaadu
Copy link
Contributor

xaadu commented Oct 16, 2020

Notes to the future maintainer (or myself, if I get back at it):

  • Make the login process work in a stable way.

    • Verify that the act cookie is not set by something else (Probably in Javascript, so figure out how it's set)
    • Add some kind of fallback-system, so that when method 1 for logging in fails, we try method 2.
    • Perhaps add a method such as Session.from_firefox, where it reads session information from the user's browser?
    • Or maybe something using Selenium?
  • Keep contact with and take inspiration from similar projects.

act cookies system already has been changed. I've already fixed the _js_datr cookie login problem that generated in the new login system but after 2 days, its changed and it no longer works. Facebook keeps changing their login system. This is really irritating.

@lonkelle
Copy link

Do they use a token based JS system for logins that you have to keep re-using once they re-minify / build it?

@xaadu
Copy link
Contributor

xaadu commented Oct 17, 2020

They've used act cookie once for login. Then _js_datr cookie-based login. I've even fixed it now another problem and I couldn't look for that.

Yes, JS Based login system (cookies generates with js) is the main problem for the messenger login system!

@lonkelle
Copy link

Does anyone know why it works for some and not for others? That's what really has me stumped.

@TheLastGimbus
Copy link
Contributor

@lonkle answer is simple - because it's Facebook, and:

  • Facebook doesn't care about us, or anyone
  • They love ❤️ A/B test (that is, features that they roll out to randomly 50% of users, and then suddenly disable/change % of users) - and they surely used it for new UI/authentication method too
  • They didn't have any major front-end changes for... like a decade or something... And now they are quickly doing something with it
  • Facebook is generally weird, partly because they have 3 billion users, so like, the whole world - that's why they need to be super careful about bots/people phishing passwords

@cmppc
Copy link

cmppc commented Oct 20, 2020

fb got a merge with instagram few days ago that is why the whole login system has been changed :(

@lonkelle
Copy link

That makes sense, but they should provide a public API like Discord for these kinds of things. But they serve the whole world.

If the new system is using a javascript based system, there's still ways to make this happen (such as puppeteer for logging in perhaps). I guess it's just a matter of effort.

@wetmore
Copy link

wetmore commented Dec 28, 2020

Hey I'm late to the party here but just wanted to say thanks @madsmtm for the time you put into maintaining this project and I totally understand wanting to step away from it.

@delrius-euphoria
Copy link

So is this repo getting maintained? Great work this is, alot of details in the code and the support from dev has been just amazing.

@karlicoss
Copy link

karlicoss commented Jan 16, 2021

I wonder if people working on Matrix bridges (e.g. mautrix) using fbchat might be interested or know someone who has the capacity to maintain? /cc @tulir

@xnote12
Copy link

xnote12 commented Jan 26, 2021

I know this is out of topic but Can someone help me to send a button message. I need to simulate button click to a bot. Sending only text message doest do much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests