Czego brakuje Flakerowi i Blipowi?

Jednym z ważnych czynników dzięki którym jest możliwy tak dynamiczny rozwój Twittera jest jego otwarte API. Dzięki niemu nad zwiększeniem atrakcyjności platformy pracują nie tylko programiści Twittera, ale również masa entuzjastów -- zarówno hobbystów, jak i ludzi myślących o zarobieniu pieniędzy na szale mikrobloggingowym. Dzięki API mogła powstać np. gra Spymaster, w której twitterowa sieć społeczna jest bardzo istotnym elementem.

Nasze rodzime twitteroidy, Blip i Flaker, również udostępniają swoje API. Są one bardzo sensownie zaprojektowane, nie jest też trudne napisanie dla nich odpowiednich bibliotek klienckich (sam jestem autorem klienta Flakera dla języka Python). Do Blipa istnieje już całkiem sporo dodatków (sporo można ich obejrzeć na bliplabs.pl. Dla Flakera jest ich trochę mniej, lecz po pierwsze jest to mniej popularny serwis, po drugie część funkcjonalności, które w Blipie trzeba implementować za pomocą dodatków jest już tam dostępna na starcie (np. publikacja notek na podstawie RSS-ów).

Twitter, Flaker i Blip

Niestety, w obecnej chwili nie mogą powstać dodatki do Blipa na miarę Spymastera, a na przeszkodzie stoją względy albo techniczne, albo etyczne, w zależności od tego jak na to patrzeć. O co chodzi?

Niebezpieczna autoryzacja

Jedynym sposobem, w jaki można dokonać autoryzacji przy pomocy API Blipa (co umożliwia nam dodawanie wpisów, wysyłanie wiadomości prywatnych, itp.) jest poprzez podanie swojego loginu i hasła. Sprawia to, że by móc skorzystać z dodatku korzystającego z tych funkcji muszę dać mu pełną kontrolę nad swoim kontem. I nie chodzi już tylko o to, że dodatek może zacząć wysyłać spam za pomocą mojego konta. Bardziej niepokojące jest to, że może bez mojej wiedzy i zgody zmienić hasło, kradnąc tym samym moją blipową tożsamość (przynajmniej dopóki nie zresetuję sobie hasła przy pomocy odpowiedniego formularza). Straty wizerunkowe spowodowane przez takie zdarzenie mogą być nie do odrobienia... Co gorsza, nie będę miał sposobu aby przekonać się, która aplikacja jest winna całemu zamieszaniu.

Oczywiście, daleki jestem od oskarżania autorów dodatków o złą wolę. Tym niemniej, jeżeli aplikacja nie ma pytać użytkownika o hasło za każdym razem, kiedy z niej korzysta, musi przechować je w swojej bazie danych. To z kolei świadczy albo o braku szacunku dla danych swoich użytkowników, albo o braku elementarnej wiedzy na temat bezpieczeństwa. Trzymając niezaszyfrowane hasła w bazie sprawiamy, że dowolny napastnik który uzyska dostęp do bazy może przejąć nad nimi kontrolę. Nie musi się w tym celu włamywać na serwer produkcyjny -- jak najbardziej wystarczą niezbyt stare kopie zapasowe. Warto o tym pamiętać: podając w dowolnym serwisie login i hasło do innego serwisu zachowujemy się nieodpowiedzialnie i narażamy się na kradzież swojej cyfrowej tożsamości.

Twórcy Flakera traktują bezpieczeństwo swoich użytkowników nieco poważniej i przy okazji powstania dodatku Reimess wprowadzili możliwość użycia do autoryzacji tzw. kodu API. Jest to ciąg alfanumeryczny wygenerowany przy pomocy jakiejś kryptograficznej funkcji skrótu, który co więcej umożliwia autoryzację jedynie przy pomocy API (czyli nie daje np. możliwości zmiany hasła).

Niestety, rozwiązanie przyjęte przez Netguru ma kilka bardzo poważnych wad. Po pierwsze, po wygenerowaniu nowego kodu stary traci ważność. Nie mogę odciąć dostępu tylko jednej aplikacji: muszę wszystkim. Po drugie, rozwiązanie to jest zupełnie bez sensu pod względem usability. Aby móc go zastosować, autor dodatku musi wysłać wysłać użtkownika pod inny URL i poprosić, aby przekopiował do formularza ciąg znaków. Ilu użytkowników będzie chciało bawić się w takie ceregiele? Niestety, niewielu. Dla tych kilku bystrych paranoików nie warto pisać aplikacji.

By użyć nieco bardziej mniej technicznej metafory: gdyby Blip wydawał kartę kredytowe, aby zapłacić rachunek w restauracji musiałbym dać kelnerowi równoważną kopię swojej karty i odpowiedni PIN. Gdyby to Flaker wydawał karty kredytowe, nie dawałbym kelnerowi karty matki, a kartę z limitem i PIN. Wszystkie karty dla kelnerów byłyby identyczne i miały taki sam PIN, ale aby zapłacić za każdym razem musiałbym składać podanie. Ze znaczkiem skarbowym, na odpowiednim druczku i dwiema pieczątkami.

Prosto, a jednak bezpiecznie: OAuth

OAuth

Czy istnieje zatem jakiś sposób, aby umożliwić aplikacjom zewnętrznym dostęp do konta użytkownika, tak aby to było używalne, a jednocześnie bezpieczne? Tak! Umożliwia to stworzony na potrzeby Twittera w 2006 roku protokół, OAuth.

OAuth jest bardzo prosty w obsłudze z punktu widzenia użytkownika. Kiedy aplikacja zewnętrzna (zwana konsumentem) chce uzyskać dostęp do danych użytkownika na innym serwisie (dostawcy), wysyła go pod specjalny adres internetowy, kontrolowany przez dostawcę. Tam użytkownik jest proszony o zalogowanie się (jeżeli nie był wcześniej zalogowany) i informowany o tym, że taki a taki serwis chce uzyskać dostęp do jego danych. Jeśli się zgadza, jest z powrotem przekierowywany do serwisu konsumenta, który otrzymuje specjalny kod dostępu. Odtąd może go używać do wykonywana różnych czynności w imieniu użytkownika. Każdy konsument ma osobny kod dostępu, jest więc możliwe odcięcia jednego serwisu bez żadnego wpływu na pozostałe. W bardziej zaawansowanych scenariuszach jest możliwe np. wydanie kodu dostępu który będzie ważny tylko przez określony czas, np. przez 2 godziny.

Typowym przykładem podawanym aby zademonstrować możliwości OAuth jest następująca sytuacja: Alicja wróciła z wakacji i wrzuciła swoje zdjęcia na serwis FooPhoto. Niestety, jej babcia nie umie korzystać z komputera, a Alicji bardzo zależy na tym, aby staruszka miała szanse je obejrzeć. W związku z tym wchodzi na stronę BarPrint. BarPrint prosi o dostęp do plików na FooPhoto przy pomocy OAuth. Alicja jest wysyłana na odpowiednią stronę, gdzie wybiera, które pliki mają być udostępnione BarPrint na najbliższe dwie godziny. Następnie FooPhoto przekierowuje Alicję z powrotem na BarPrint, gdzie wybiera sobie format i rodzaj papieru, na którym mają zostać wydrukowane.

OAuth jest coraz bardziej popularny. Wspierają go Twitter, Yammer, Google, Yahoo, Netflix... Z polskich serwisów od sierpnia 2008 roku wspiera go, uwaga-uwaga... Gadu-Gadu, czyli właściciel Blipa! Tym bardziej dziwi kulawe pod względem bezpieczeństwa API. No ale cóż, 2 lata (GG przejęło Blipa 11 czerwca 2007 roku, jeśli wierzyć Wikipedii) to najwyraźniej za mało na zintegrowanie bazy kodu Blipa i GG...

Oczywiście, OAuth nie jest protokołem pozbawionym wad. Odpowiednie skonfigurowanie konsumenta OAuth nie jest niestety zupełnie trywialne od strony technicznej. Zrobienie tego dla Netfliksa zajęło mi niemal 5 dni, ale było to nie bez związku z tym, że w kilku sytuacjach Netflix nieco nagina protokół do swoich potrzeb (choć to akurat temat na inną notkę). W kwietniu tego roku znaleziono niewielką lukę w protokole (ciekawie opisano to tutaj - linka podrzucił mi Ols). Mimo tej luki protokół wciąż jest o niebo bezpieczniejszy niż alternatywa, czyli wysyłanie gołego hasła.

Co dalej?

Obecna sytuacja strasznie mnie frustruje. Mam kilka pomysłów na wykorzystanie API zarówno Blipa jak i Flakera (np. marzy mi się integracja komentarzy na Gryziemy z Flakerem). Niestety, nie realizuję ich, ponieważ API Blipa nie jest bezpieczne, a token zbyt niewygodny w obsłudze. Jeśli Blip do tej pory nie ma OAuth, to chyba nie ma co się łudzić, że jego obsługa zostanie dodana w najbliższym czasie. Flaker jednak wciąż dość szybko się rozwija. Nie tracę więc nadziei, że chłopaki i dziewczyny z Netguru jakoś niedługo pójdą po rozum do głowy i zastąpią swoje rozwiązanie na pół gwizdka sensownym standardem.

Do dyskusji zapraszam najchętniej na flakerze.

Czy SMO będzie nowym SEO?

Koncepcja SMO, czyli Social Media Optimization, od jakiegoś czasu pojawia się w kontekście alternatywy dla dobrze znanego SEO. Choć nie jest wcale taka nowa (pojęcie ukuto w 2006 roku), polski Google wyrzuca 772 strony na zapytanie „social media optimization”. Zatrważająco mało.

SMO is the new black

Idea leżąca u podstaw SMO jest następująca: ludzie nie trafiają na interesujące ich treści w Internecie przez wyszukiwarki. Z wyszukiwarek trafiają raczej na rzeczy przypadkowe, natomiast o stronach, które okazują się dla nich naprawdę wartościowe, dowiadują się dzięki poleceniu przez innych ludzi.

Coś jest na rzeczy. Gdy analizuję np. zawartość swojego Google Readera, okazuje się, że większość moich RSS-ów wylądowała tam dzięki poleceniu znajomych, flakom i blipom, czy linkom w blogrollach na wcześniej już odwiedzanych blogach.

Jeśli spojrzeć właśnie z tej perspektywy na to, jak ludzie docierają do ciekawych dla nich stron, można wnioskować, że to nie optymalizacja strony dla wyszukiwarek, rozumiana na rynku głównie jako link building, jest najlepszym sposobem docierania do potencjalnych klientów. Właściciel internetowego biznesu powinien raczej skupić się na optymalizacji strony dla mediów społecznych, czyli serwisów społecznościowych, blogów, mash-upów.

Całkiem stary eksperyment (z 2007 roku, czyli sprzed boomu na Twittera) przeprowadzony przez marketingexperiments.com pokazuje, że dobrze przeprowadzona kampania SMO daje dużo większy zwrot z inwestycji niż podobnego kosztu kampania AdWords. Kampania SMO prowadzona przez 12 miesięcy przyniosła w tym eksperymencie 93 000 wizyt. Miesięczna kampania AdWords — 2057. Co więcej, koszt wizyty z linku w AdWords wyniósł 15 razy więcej niż koszt wizyty z kampanii SMO.

Social media Optimmization

Jak robić social media optimization?

Co to właściwie znaczy: optymalizować stronę dla mediów społecznych?

  • Ułatwiaj dodawanie strony do serwisów społecznościowych i mash-upów zamieszczając przyciski Facebook, Blip, Flaker, Wykop, Delicious i wiele podobnych.
  • Używaj ładnych adresów URL czyli takich, z których można wywnioskować, jaka jest zawartość strony. Klasycznie złymi przykładami są URLe na stronach Onetu czy Gazety.pl, składające się z nic nie mówiących cyfr i przecinków, które co więcej utrudniają wklejanie linków na forach dyskusyjnych.
  • Taguj w sensowny sposób zawartość swojej strony.
  • Używaj licencji sprzyjającej cytowaniu strony, np. Creative Commons i wyraźnie zaznaczaj, że jej używasz.
  • Używaj kanału RSS i propaguj go przez RSS-autodiscovery.
  • Zamieść na stronie widget swojego konta w serwisach mikrobloggingowych lub co najmniej — zachętę do obserwowania twojego profilu.
  • Uczestnicz w dyskusjach wewnątrz innych społeczności. I nie chodzi tylko o dyskusje na temat tego, co oferuje twoja strona. Po prostu, udzielaj się w społeczności, bądź dla niej wartościowy i zacznij być rozpoznawany. Doskonale robi to Viren Bhandari ze skarpetkowo.pl, który poprzez Flakera rekrutuje testerów swoich skarpetek. Dzięki temu, że Viren nie jest monotematycznym geekiem skarpet i potrafi rozmawiać tez na inne tematy, jest chętnie obserwowany przez innych flakerowiczów, którzy prędzej czy później trafią na stronę jego sklepu.
  • Bloguj i komentuj inne blogi. Większość sklepów internetowych zmienia ofertę co kilka miesięcy, powodując tym samym, że odwiedzający traca motywację do częstych odwiedzin. Rozwiązaniem tego problemu może być blog sklepu czy firmy, który zatrzymuje czytelników na dłużej pod szyldem konkretnej marki. Znów, blog nie musi być wyłącznie na temat oferowanego produktu. Np. blog e-lady, zrobiony przez agencję JanMedia to na pierwszy rzut oka typowy babski blog „o życiu”, choć promuje sklep internetowy z bielizną E-Lady.

Jak widać, SMO to żadna magia, a jedynie dość zdroworozsądkowe zasady myślenia o tym, jak przyciągnąć potencjalnego klienta pod swój adres www. Jednak w Polsce ten sposób myślenia jest wciąż jeszcze w powijakach. Brak komunikacji z klientami na twitteroidach jak Blip czy Flaker to zapewne pochodna małej popularności serwisów mikrobloggingowych. W większości e-sklepów, których właściciele płacą za pozycjonowanie i SEO, brak podstawowych przycisków dodawania do mash-upów i serwisów social bookmarking pod ofertami produktów. To wynika pewnie ze słabej świadomości właścicieli e-commerce'ów, że coś takiego, jak social bookmarking czy mash-up w ogóle istnieje i generuje jakikolwiek ruch.

W ojczyźnie Naszej-Klasy intuicyjnie robione SMO na ogół sprowadza się do zakładania kont sklepów na N-K, na przykład takich, jak to zjawisko. Dlatego sądzę, że na rodzimym rynku SMO jeszcze długo nie wejdzie specjalistom od SEO w drogę.

Bojkot na GoldenLine

GoldenLine doczekał się wreszcie własnego bojkotu, dołączając tym samym do czołówki „zbojkotowanych” społecznościówek, z Naszą-Klasą, Gronem i Facebookiem na czele.

O co chodzi? Od wczoraj GoldenLine testuje narzędzie oceniania wypowiedzi w dyskusjach. Przy postach użytkowników pojawiły się plusiki i minusiki. Zasady klikania w znaczki nie zostały nigdzie jasno określone, zaś samo klikanie skutkuje zwiększeniem lub zmniejszeniem wartości liczbowej przysługującej postowi. Wyjściowo każdy post ma tę wartość ustawiona na zero.

Nowej funkcjonalności na GL daleko do rewolucyjnych zmian w layoucie na Facebooku czy Gronie i w przeciwieństwie do zmian na N-K, nie trzeba za nią płacić. Mimo to, starzy wyjadacze GL organizują „bojkot na GoldenLine”. Warto zauważyć, że to właśnie użytkownicy o najdłuższym stażu i największej aktywności, identyfikujący się w jakis sposób z serwisem, są najbardziej skorzy do inicjowania takich bojkotów.

Bojkot na GoldenLine

Dlaczego w ogóle bunt? Naturalnie, z powodu lęku przed podleganiem ocenie. Intepretacja punkcików przy postach w kategoriach oceny człowieka wydaje się wszystkim, nie wiedzieć czemu, najnaturalniejsza. Toteż pojawiają się głosy:

To przykre, że tu są takie oceny. Dopiero zaczynam i nieco mam obawy przed wypowiadaniem się - w końcu nikt mnie tu nie zna a już ocenia. NIe chcę wyjść na krzykacza, ale chyba nie będę się wypowiadać po to by ktoś anonimowy mnie oceniał. (stąd)

albo:

GL ceniłam dotychczas za to, że w dyskusji mógł wziąć udział i każdy i każdy miał prawo do własnego zdania i przedstawienia go na forum. Każdy miał też prawo odnieść się do każdej wypowiedzi. W ten sposób wątek był naturalnym zbiorem sądów i wiedzy ludzkiej. Wypowiadający się i każdy uczestniczący w dyskusji mógł sam wyrobić sobie swoje zdanie. PROPONOWANY SYSTEM OCEN WYPOWIEDZI ZBURZY DOTYCHCZASOWĄ WOLNOSC WYPOWIEDZI I PREZENTOWANIA SWOICH RACJI CZYLI ODBIERZE SERWISOWI GL TO, CO W NIM CENIĘ.
Jestem zdecydowanie NA NIE. (stąd)

Niby wszyscy doskonale zdają sobie sprawę, że non stop podlegają ocenie, ale gdy ocenianie staje się sformalizowane i jawne, to już auć, boli, nie życzymy sobie. Przyznaję, że ten tok myślenia jest mi całkowicie obcy...

Jeszcze jedno ciekawe zjawisko, na które warto zwrócić uwagę: GoldenLine ma rzesze użytkowników, którzy uważają się za trzon serwisu. Piszą wręcz: „GoldenLine to my!”. Uważają się wręcz za jego właścicieli (sic!):

W sumie do jasnej cholery, GL to to co my piszemy! Czyli właścicielami GL są użytkownicy! Jeśli im się nie podoba, to należy NATYCHMIAST to usunąć!!! Proste. Nie trzeba studiować marketingu i obsługi klienta aby zrozumieć, że w ten sposób traci się klientów/nas!!!
Tylko nadęty bałwan kontynuuje durne pomysły dla własnego widzimisię i jeszcze straszy "drugim etapem".
Jeszcze kilka(set) wpisów tutaj (bez reakcji) i kasuję konto! (stąd)

Jedyne, co pozostaje, to pogratulować GL przywiązania juzerów. Zawsze uważałam, że bojkot społecznościówki dobrze o niej swiadczy.

I jeszcze celem podsumowania, trzy uwagi na koniec:

  • serwis zbojkotowany to serwis z dużą liczbą lojalnych i przywiązanych użytkowników;
  • zanim zmienisz reguły gry, uprzedź użytkowników o swoich planach i pozwól im sądzić, że się z nimi konsultujesz;
  • jako community manager, nie doprowadzaj do tego, że nowa funkcjonalność sprawia, że użytkownicy są zagubieni.