I would like to integrate a facebook ‘like’ button to my page, so here is the result:
<!DOCTYPE html>
<html lang="pt-br"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:fb="http://ogp.me/ns/fb#">
<h:head>
</h:head>
<h:body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<filled with my app id>', // App ID
channelURL : '//www.suaparte.org', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : true // parse XFBML
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
<div id="header">
<ui:insert name="header">
Header area. Please insert the header!
</ui:insert>
</div>
<div id="content">
<ui:insert name="content">
Content area. Please insert the content!
</ui:insert>
</div>
<div id="footer">
<fb:like href="suaparte.org" send="true" width="450" show_faces="true"></fb:like>
</div>
</h:body>
</html>
The button ‘like’ appears but below appears the follow message:
Warning: This page calls for XML namespace http://ogp.me/ns/fb# declared with prefix fb but no taglibrary exists for that namespace.
Ignore the warning. It’s coming from Facelets which is a XML based view technology and expects all the XML namespaces to refer to Facelets tag libraries. This warning is supposed to be helpful during development for the case that you’re trying to refer a Facelets tag library which doesn’t exist in the classpath at all. For example, when you’re trying to use RichFaces components but forgot to actually install RichFaces.
In case of Facebook the XML namespace is actually to be interpreted by the JavaScript in the client side and it is working fine, so you can safely ignore the warning. It won’t appear anyway if you have
javax.faces.PROJECT_STAGEset toProduction. Those warnings appear only when it’s set toDevelopment.