RkBlog

Hardware, programming and astronomy tutorials and reviews.

Integracja Facebook Connect z Django

Integracja społecznościowych elementów Facebooka z aplikacją Django poprzez Facebook Connect

Pod nazwą Facebook Connect kryje się cała gama usług i API umożliwiających społeczną integrację swoich stron z Facebookiem. Za pomocą Facebook Connect możemy umożliwić logowanie do serwisu za pomocą konta z Facebooka, zapraszać znajomych takiego użytkownika, czy też umieszczać powiadomienia w jego feedzie o dokonaniach na naszej stronie (np. opublikował recenzję i informacja pojawi się także na Facebooku). Jak opisuje podana wcześniej strona Connect ma spore możliwości: Pełna dokumentacja znajduje się na wiki Facebooka. Warto zapoznać się z wymogami formalnymi stosowania tej usługi. Connect oparty jest o JavaScript i XFBML. Nie jest bezpośrednio potrzebny język server-side.

Implementacja Facebook Connect w Django

Powiedzmy że chcemy wyświetlić informacje o zalogowanym użytkowniku. Żeby tego dokonać za pomocą Facebook Connect musimy zaszaleć z JavaScriptem. Oto gotowy kod (używający biblioteki jQuery):
{% block content %}
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>
<div id="infobox">
	<fb:login-button></fb:login-button>
</div>
<div id="profil"></div>

<script type="text/javascript">

FB_RequireFeatures(["XFBML"], function()
	{
	FB.Facebook.init("API KEY APLIKACJI", "/user/xd_receiver.htm");
	FB.Facebook.get_sessionState().waitUntilReady(function()
		{
		$("#infobox").html("Witaj użytkowniku <b>Facebooka</b>");
		var uid = FB.Facebook.apiClient.get_session().uid;
		if (uid)
			{
			var viewer  = FB.Facebook.apiClient.fql_query('SELECT name, pic_square_with_logo,profile_url FROM user WHERE uid='+uid,
				function(results) {
							$("#profil").html('Nazywasz się: <b>' + results[0].name + '</b><br /><img src="' + results[0].pic_square_with_logo + '" alt="" /><br /><a href="' + results[0].profile_url + '">Zobacz swój profil</a>');
							}
				);
			}
		});
	});

</script>
{% endblock %}
fbc4

Facebook connect umożliwia m.in. komentowanie wpisów na twoje stronie z opcją automatycznego umieszczenia ich na Feedzie autora komentarza. Autoryzacja dla Django użytkownika zalogowanego w Facebook connect możliwa jest m.in. za pomocą odpowiedniego middleware, czy aplikacji django-fbconnect.

RkBlog

10 July 2009;

Comment article