Facebook Connect - Allow Your Users To Login With Their Facebook Account

MobileHacks

New Member
Facebook Connect
This add-on allows your guests and existing users to login with their Facebook account through Facebook Connect.

Benefits of Facebook Connect
  • Users can simply login with their Facebook account without going through the registration process.
  • Increase user interaction and your traffic through Facebook notifications and news-feeds!
Features
Facebook users will be able to receive Facebook notifications when:
  • There is a reply to their thread or a thread that they're subscribing to
  • They receive a new PM
News-Feed will be published on to the user's wall when the user:
  • Logs in for the first time
  • Replies to a thread
  • Creates a new thread
Fetch user data from Facebook
Fetch data like name, location, profile picture and use it on your forums! (NOTE: Some data may not be available for some users)

Automatically befriend user's friends
If any of the user's friends are also registered on the forum, they will automatically be friends!

Troubleshooting
Server Requirements:
PHP 5

If you get an error:
PHP:
The Facebook Connect cross-domain receiver URL http://www.SITEURL.com/xd_receiver.h...%220.699%22%7D must have the application's callback URL http://www.SITEURL.com/forums/ as a prefix. You can configure the callback URL in the application's settings.
Means that there is something wrong with your callback URL. Your callback URL must be where xd_receiver.htm is; so when you enter [callbackurl]/xd_receiver.htm into your browser you should see a blank page (not a 404 page not found error or anything else).

If you get a continues
indicator_white_small.gif
this means there is a javascript error. Make sure you've done all the template edits correctly (especially footer & navbar). Clear your cache and reload the page.

If nothing happens when you click the Facebook Connect button make sure your callback url domain is the same as you forum domain (the one set in your forum settings) - more specifically make sure that there is a www (or isn't) in both domains.
 
some more modifications are needed like
members from facebook only can "connect with facebook" option no login works at all
 
i nice mod you will like.........

Guest Top Bar [3.6-3.8]

got it here you go with facebook connect:




add this code on the top of header template:

PHP:
<if condition="$bbuserinfo['usergroupid'] == 1"> 
<div id="topbar"> 
<table width="589"> 
<tr><td width="16" align="left" valign="top"><a href="" onClick="closebar(); return false"><img src="$stylevar[imgdir_misc]/close.gif" border="0" /></a></td> 
  <td width="7"> </td> 
  <td align="left" valign="top"><p>It seems that you are unregistered. Please register with us by clicking <a href="$vboptions[bburl]/register.php"><strong>here</strong></a>.</td> 
  </tr> 
<tr> 
  <td align="center" valign="middle"><img src="$stylevar[imgdir_misc]/attension.gif" /></td> 
  <td width="7"> </td> 
  <td colspan="2" align="left" nowrap="nowrap" valign="top"> 
    <!-- login form --> 
    <form action="login.php?do=login" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, $show[nopasswordempty])"> 
      <script type="text/javascript" src="clientscript/vbulletin_md5.js?v=$vboptions[simpleversion]"></script> 
      <table width="" height="5px" border="0" cellpadding="0" cellspacing="$stylevar[formspacer]"> 
        <tr> 
          <td width="133" class="smallfont" style="white-space: nowrap;"><label for="navbar_username">$vbphrase[username]:</label></td> 
          <td width="65"><input type="text" class="bginput" style="font-size: 11px" name="vb_login_username" id="navbar_username" size="14" accesskey="u" tabindex="101" value="$vbphrase[username]" onfocus="if (this.value == '$vbphrase[username]') this.value = '';" /></td> 
          <td width="" nowrap="nowrap" class="smallfont"><label for="navbar_password">$vbphrase[password]:</label></td> 
          <td width="50" nowrap="nowrap" class="smallfont"><input name="vb_login_password" type="password" class="bginput" id="navbar_password" style="font-size: 11px" tabindex="102" size="10" /></td> 
          <td width="183" nowrap="nowrap" class="smallfont"><input type="submit" class="button" value="$vbphrase[log_in]" tabindex="104" title="$vbphrase[enter_username_to_login_or_register]" accesskey="s" /></td> 
          </tr> 
        </table> 
      <input type="hidden" name="s" value="$session[sessionhash]" /> 
      <input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" /> 
      <input type="hidden" name="do" value="login" /> 
      <input type="hidden" name="vb_login_md5password" /> 
      <input type="hidden" name="vb_login_md5password_utf" /> 
      </form> 
    <!-- / login form --> 
<!-- fbconnect -->
<center>
<span class="fbconnect" style="height:21px">
<img src="http://static.ak.fbcdn.net/images/loaders/indicator_white_small.gif" alt="Connect with Facebook" />
</span>
</center>
<!-- / fbconnect -->
    </td> 
</tr> 
</table> 
</div> 
</if>

add code this in very end of header tempalte:

PHP:
<if condition="$bbuserinfo['usergroupid'] == 1">
<style type="text/css">

#topbar{
position: absolute;
border: 1px solid black;
padding: 5px;
background-color: white;
width: 505px;
visibility: hidden;
z-index: 400;
}

</style>
<script type="text/javascript">

var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var startX = 30 //set x offset of bar in pixels
var startY = 5 //set y offset of bar in pixels
var verticalpos="fromtop" //enter "fromtop" or "frombottom"

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function closebar(){
if (persistclose)
document.cookie="remainclosed=1"
document.getElementById("topbar").style.visibility="hidden"
}

function staticbar(){
	barheight=document.getElementById("topbar").offsetHeight
	var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
	var d = document;
	function ml(id){
		var el=d.getElementById(id);
		if (!persistclose || persistclose && get_cookie("remainclosed")=="")
		el.style.visibility="visible"
		if(d.layers)el.style=el;
		el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
		el.x = startX;
		if (verticalpos=="fromtop")
		el.y = startY;
		else{
		el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
		el.y -= startY;
		}
		return el;
	}
	window.stayTopLeft=function(){
		if (verticalpos=="fromtop"){
		var pY = ns ? pageYOffset : iecompattest().scrollTop;
		ftlObj.y += (pY + startY - ftlObj.y)/8;
		}
		else{
		var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
		ftlObj.y += (pY - startY - ftlObj.y)/8;
		}
		ftlObj.sP(ftlObj.x, ftlObj.y);
		setTimeout("stayTopLeft()", 10);
	}
	ftlObj = ml("topbar");
	stayTopLeft();
}

if (window.addEventListener)
window.addEventListener("load", staticbar, false)
else if (window.attachEvent)
window.attachEvent("onload", staticbar)
else if (document.getElementById)
window.onload=staticbar
</script></if>


i will add simple registration form in this mod for boosting registrations soon.
 
work perfectly! thanks

if you want modify the language of Facebook Feeds just modify it in admincp/fbconnect_registertemplates.php

If you try to do it directly in Facebook Developer you will get an error
 
Back
Top