Cierpliwi doczekali się ;d.
Nowa wersja wtyczki
protoFacebook - 3.0 dostępna na
AutoUpdate.
Dla tych co lubią sobie poczytać.
Historia jej powstania jest dość burzliwa. Głównym problemem jest generalny brak czasu, jednak wymóg posiadania non stop otwartego FB w przeglądarce codziennie mnie bardzo denerwował ;P. Ale do rzeczy: po tym jak FB ubił long polling na którym działała dotychczasowa wersja wtyczki zrodziło się pytanie. Czy nadal udawać przeglądarkę, bawić się w scrapowanie htmli/jsów, podpinać pod websockety i co chwilę bawić się dalej w kotka i myszkę z szajsbukiem czy spróbować trudniejszej opcji a'ka MQTT. Jak pokazał Pidgin, MQTT api fejsbuka jest dość stabilne bo ponad półtoraroczna wersja nadal działa bez zarzutu. Początkowo miałem pomysł użycia "gotowca" czyli libpurple pidginowego - jednak po długich godzinach spędzonych na kompilacji całego pidgina ze źródeł i odpaleniu libpurple w moim środowisku zaczęły pojawiać się problemy, co prawda pierwsze udało się rozwiązać (dzięki @Kaworu za pomoc) ale za chwile okazało się że jest ich coraz więcej. Wtedy stwierdziłem (w sumie tylko dzięki temu że miałem plugin tak napisany że część integracji z FB była całkowicie oddzielona od integracji z WTW i wymieniając pierwszą część, ta druga zadziała bez jakichkolwiek zmian) że trzeba spróbować to napisać po swojemu w takim razie.
Minęło trochę czasu (i tego na development i tego między developmentem) ale wydaje się że wtyczka jest dowieziona. Mam nadzieję że to już ostatnia wersja (pod względem implementowania od nowa integracji FB). Wtyczka jest już jakiś czas na internal testach, dostała kilka łatek i obecnie wydaje się stabilna.
Odnośnie głównych zmian:- Nowa wersja integracji z Facebookiem - MQTT - tym razem zamiast przeglądarki udajemy messengera na Androidzie
- Wymieniona cała warstwa komunikacji z API FB
- Prawdopodobnie wyeliminowany problem z blokadami kont - przez cały development wyłapałem raptem 2 bany we wczesnej fazie gdy stukałem bardzo dużą ilością logowań
- Wtyczka jest w swoim działaniu zdecydowanie lżejsza (MQTT vs HTTP + parsowanie stron)
- Kod jest zdecydowanie bardziej odporny na jakieś braki/niekompletne dane ze strony FB
- Zaktualizowane biblioteki
- Większość dotychczasowych funkcji została odtworzona
Co nie zostało odtworzone?- Obsługa listy znajomych a mianowicie - dodawanie/usuwanie/anulowanie zaproszeń itp - nie znalazłem opcji w znanych endpointach obsługi tego, a poza tym to i tak było średnio wygodne i pewnie nikt z tego nie korzystał ;p
- Obsługa pseudonimów - j.w. nie znalazłem w API niczego odnośnie pseudonimów
- Obsługa 2FA - z tym że tutaj nie do końca gdyż co prawda nie wiadomo jak zalogować się podając kod 2FA, natomiast testowałem i można zdjąć sobie 2FA na chwilę, zalogować się, protoFacebook zapamięta różne tokeny których użyje do kolejnych logowań a następnie przywrócić 2FA i pomimo posiadania zabezpieczenia WTW powinno łączyć się pomyślnie używając wspomnianych zapisanych danych. Druga opcja (jak się dowiedziałem na #wtw) to utworzenie hasła dla aplikacji i jego użycie - brzmi nawet lepiej :D
- Brak obsługi powiadomienia o dostarczeniu wiadomości - jest to wykonywane w protokole automatycznie, ale obsługa oznaczania jako przeczytana działa normalnie
- Jakieś mało znaczące informacje w profilu publicznym
Co zostało dodane?- Dostarczane są wiadomości wysłane jako odpowiedź do jakieś wiadomości (!!!!!!!)
- Avatary dla konwersacji grupowych
- Otwieranie profilu danej osoby z poziomu okna konwersacji
- Jakieś mniejsze rzeczy których już nie pamiętam :P
Odnośnie pytań które się mogą pojawić/powtórzyć:
- Statusy kontaktów - wyświetlam to co przyśle FB, nie ma tu żadnej magii, kontakty które FB prześle jako Away z ostatnią aktywnością dawniej niż 15min temu są oznaczane jako offline.
- Status nasz - nie wiem do końca co on zmienia, ale wiem jedno, nie da się w obecnym protokole będą zalogowanym przejść z Online na Niewidoczny i vice versa. Aby taka zmiana weszła w życie trzeba wykonać reconnecta.
- Nie testowałem / nie używam wersji x86 - kompiluje się więc można próbować, może działa może nie, kto to wie ;P
- Konwersacje na marketplace są traktowane przez FB jako grupowe i zostaną dociągnięte normalnie jako grupowe, jak komuś się nie podoba, to należy opuścić taką "grupę" w messengerze i przy kolejnym załadowaniu już tej konwersacji nie będzie
- Pierwsze zalogowanie na kontach z dużą ilością znajomych potrafi zmulić komunikator na jakiś czas (pobieranie avatarów)
Mam nadzieję że wtyczka komuś się jeszcze przyda i będzie działać. Standardowo, jeżeli ktoś znajdzie jakiś problem i potrafi go opisać/powtórzyć to proszę o zgłoszenie. Odnośnie nowych ficzerów itp - szansa niemal zerowa - brak czasu - chociaż korona tutaj lekko przyspieszyła pojawienie się nowej wersji ;)
*** Używasz wtyczki na własne ryzyko. Nie odpowiadam za żadne ewentualne, nieoczekiwane skutki uboczne używania wtyczki - w tym możliwe chwilowe blokady konta ***Moje wtyczki są w pełni darmowe - nie uzyskuję z nich żadnych korzyści materialnych.
Jeżeli Ci się podobają i chciałbyś mnie wesprzeć w ich tworzeniu - postaw mi piwo :) - www.paypal.me/vuyek
Download (skasować spacje):
wtw.vuyek.pl/facebook