Integracja własnej strony z Facebookiem - co to w ogóle znaczy?
Jak powstał "moduł" facebook zacząłem się zastanawiać co to znaczy połączyć stronę z facebookiem. Nie znałem fejsa jeszcze wtedy tak dobrze, a oglądane na innych stronach buttony boksy i cała masa tego typu dodatków jakoś mnie nie kręciła.
Jak zwykle ciekawość okazała się pierwszym krokiem do piekła:)
Najbardziej interesowała mnie idea łatwej rejestracji użytkownika, który ma konto na facebook.
Łatwa rejestracja co to znaczy hmm...
Zikula potrzebuje 3 danych żeby zarejestrować użytkownika
(sytuacja: logowanie za pomocą loginu email wymagany unikalny)
login - można pobrać imię i nazwisko użytkownika z fejsa i je "obrobić" tak żeby spełniało podstawowe wymagania co do loginu użytkownik powinien mieć możliwość zmiany loginu! przed rejestracją
email - można skopiować z fejsa :)
hasło - można generować, ale one są tragiczne te hasła z fejsa hasła nie pobierzemy- jedyne co pozostaje to udostępnić możliwość wpisania hasła
Jak to działa:
Facebook od strony, od której większość osób zna to tylko szczyt góry lodowej. Kluczowa funkcja to aplikacje takie jak np: gry, aplikacje dostępu do strony dla telefonów itp.
Chcąc skorzystać z gry/aplikacji na fejsie jesteśmy proszeni o akceptację dostępu tej aplikacji do naszego konta - to jakie to są dane wyświetla się nam podczas akceptacji.
Co to ma wspólnego z moją stroną, którą chcę połączyć/zintegorwać z facebookiem.
No więc, zanim zrobimy cokolwiek
Wchodzimy na fejsa logujemy się i przechodzimy na stronę https://developers.facebook.com/apps
Tworzymy aplikację
Następnie instalujemy moduł facebook na naszej stronie www
(Kopiujemy zawartość folderu config do config folder facebook do folderu modules)
Wchodzimy do administracji modułu facebook
I wypełniamy danymi, o które nas proszą.
Zaznaczamy use for reg
Zanim zaczniemy łączyć się wchodzimy do administracji modułami i de aktywujemy moduł AuthPN - są z nim problemy...
Ok - teraz najlepiej wylogować się i z facebooka i z naszej strony
Jeśli wcześniej używałeś modułu facebook mogą wystąpić problemy, ale nie muszą :)
wchodzimy na link ...index.php?module=facebook
Powinno nam się pokazać connect to facebook
Klikamy połącz wpisujemy nasze dane akceptujemy aplikację i...
Teraz powinniśmy być zalogowani do fejsa przez naszą aplikację mamy dostęp do danych z naszego profilu w tym adres emai,
I tu zaczynają się schodki bo:
- email może być już zarejestrowany - w ogóle możemy mieć już na naszej www konto i chcemy tylko połączyć konta - nie ma problemu jeśli email jest zarejestrowany pokaże nam się opcja logowania.
- jeśli email nie jest zarejestrowany - formularz do rejestracji - taka mini wersja tylko login/hasła
klikamy sprawdzamy czy wszystko jest ok na końcu powinno nas zalogować i połączyć/zarejestrować i połączyć
Ostrzeżenie - moduł jest przerobiony "na kolanie" i może powodować problemy!
Moduł był testowany przy ustawieniach normalnej rejestracji z generowanym hasłem i wysyłanym na email. Moduł "powinien" działać przy innych ustawieniach
Wasze uwagi i błędy będą kluczowe do publikacji następnej wersji.
SILCOM.pl - PANOgrafia 360°
Najpierw instalujesz moduł na swojej www.
Następnie rejestrujesz aplikację na swoim koncie facebook.
Pobierasz apikey oraz secret key i tylko te są wykorzystywane.
Moduł facebook ma w sobie tylko 2 funkcje w sumie 3
/index.php?module=facebook&type=register&func=loginform
/index.php?module=facebook&type=register&func=newuser
/index.php?module=facebook&type=sample&func=myevents
W pntemplates są templatki do tych funkcji i tak:
loginform.html - tam na początku trzeba dodać to plugin dodający odpowiedni javascript, który inicjuje wszystko.
Code
<!--[fbjs]-->
Odświeżamy cache wylogowujemy się i wchodzimy na
/index.php?module=facebook&type=register&func=loginform
I teraz powinien się tam nam wyświetlić przycisk facebook
klikamy w ten przycisk i wyskakuje nam okienko i są 2 opcje:
1.error 100 - trzeba wypełnić informacje w uwstawieniach aplikacji URLe itp znaczy ja to zrobiłem i zadziałało, ale nie wiem czy to to
2.okno logowania facebook wpisujemy i akceptujemy uprawnienia dla aplikacji.
Następnie powinno nas przenieść do strony logowania lub rejestracji konta twojej strony tam sie logujemy lub rejestrujemy konto po tym nasze konta są "połączone" i za każdym razem loguje nas automatycznie pobiera także nasze logo z face itp...
Ogólnie to ta paczka to zbiór funkcji do odbierania danych z face co z tymi danymi ma się stać musimy napisać dlatego w tym module nie ma pliku pnuser.php.
Tak czy siak coś działa i w sumie ja jeszcze nie znam ani fejsa do końca i nie wiem co można by zrobić więc będę wnikał dalej...
aa jeszcze funkcja myevents hmm nie działa mi to mimo iż jestem zalogowany za pomocą fejsa nie wiem co jest 5 wiecej testów muszę przeprowadzić...:D
1.Sprawa to dziwna sprawa bo nie mogłem się zalogować do serwisu musiałem pobrać hasło i wtedy zadziałało co ciekawe fejs mnie logował normalnie do póki nie wyłączyłem opcji w ustawieniach administracyjnych modułu facebook żeby logował. Wtedy już w ogóle nie miałem dostępu do admina i musiałem zrobić manewr z nowym hasłem. ...teraz działa... dalej testuje co się mogło stać, mogłem pozmieniać i nie pamiętać
mniejsza o to
link:
/index.php?module=facebook&type=sample&func=myevents
To funkcja w pnsample.php w module facebook.
pobiera eventy z konta facebook akutualnie zalogowanego usera mi nie działała bo nie mam eventów na fejsie, ale kilka kliknięć i zrobiłem funkcję myfriends i tak:
Code
function facebook_sample_myfriends()
{
$events = pnModAPIFunc('facebook', 'user', 'graph', array('req' => 'me/friends'));
$pnRender =& new pnRender('facebook');
$pnRender->assign('friends', $events);
return $pnRender->fetch('samples/friends.html');
}
dodajemy na końcu pnsample.php
dodajemy plik friends.html w katalogu /pntemplates/samlples/friends.html
a w nim
Code
<!--[fbjs]-->
Use this code to grab the data shown below:<br />
<textarea cols="85" rows="13">
$events = pnModAPIFunc('facebook', 'user', 'graph', array('req' => 'me/events'));
foreach ($events['data'] as $event) {
$event['details'] = pnModAPIFunc('facebook', 'user', 'graph', array('req' => $event['id']));
$myevents[] = $event;
}
</textarea>
<pre>
<!--[print_r array=$friends]-->
</pre>
<!--[pndebug]-->
/index.php?module=facebook&type=sample&func=myfriends
I następna sprawa
Code
<!--[print_r array=$friends]-->
nie zadziała i dlatego nie pokazuje się w myevents
poprawnie jest
Code
<!--[$friends|@print_r]-->
Facebook ma API i tu jest coś o tym http://develope…k.com/docs/api
I teraz od razu rzuca się w oczy:
Quote
Czyli to można pobrać o sobie "osobie zalogowanej na fejs przez tą aplikację"
Każdy kto chce zalogować się za pomocą facebooka najpierw loguje się po przyciśnięciu przycisku na stronie /index.php?module=facebook&type=register&func=loginform
Jeśli nie ma przycisku jest tylko napis to dajcie znać
Jeśli jest przycisk to tak jak pisałem po kliknięciu może wystąpić error 100 w nowo otwartym oknie
Następnie musieliśmy potwierdzić dostęp aplikacji do konta
I przekierowało nas na naszą stronę i wybór czy logujemy się do naszego konta na www.twojawww czy zakładamy nowe konta wtedy zostaną połączone po id. wtedy fejsbook nas loguje
SILCOM.pl - PANOgrafia 360°
SILCOM.pl - PANOgrafia 360°
zdefiniuj nie był podłączony
Wczoraj siedziałem nad tym troszkę no kończę jeden projekt i chciałem tam też fejsa dodać zanim będę reklamował
Ogólnie nie podoba mi się tam pare spraw w tym module i dalej mam problem z logowaniem tak naprawdę od ostatnich moich postów nie wnikałem w ten moduł dopiero wczoraj.
Nie polecam testów na koncie admina tak jak wcześniej coś poszło nie tak i nie mogę się zalogować na konto użytkownika za pomocą loginu i hasła tzn bezpośrednio bez używania fejsa.
Więcej info niebawem
SILCOM.pl - PANOgrafia 360°
Wszystko mi działa przerobiłem troszkę ten moduł wstawię paczkę niebawem może dzisiaj w nocy.
Została mi jedna sprawa do zrobienia.
Jeden krok...:)
http://zikula.p…ost&post_id=75
Połączyłem ten topik z wpisem w blogu na temat tego modułu.
Nie sprawdzałem, mam nawał pracy w pracy :/ Ale funkcjonalnośc chyba podobna do tej => http://www.naszanowazelandia.pl/
--edit--
U mnie się jakaś pętla zrobiła ;| Silcom.pl
Edytowany przez BeeR o Lip 17, 2011 - 01:50 .
SILCOM.pl - PANOgrafia 360°
fix na szybko phpMyAdmin tabela module_vars w niej szukamy modułu facebook i usuwamy wiersz, w którym jest Id usuniętego użytkownika.
SILCOM.pl - PANOgrafia 360°