Skip to content

Instantly share code, notes, and snippets.

@dhchow
Created August 15, 2010 07:40
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dhchow/525221 to your computer and use it in GitHub Desktop.
Save dhchow/525221 to your computer and use it in GitHub Desktop.
<% if flash[:error].present? %>
<h3><%= flash[:error] %></h3>
<% else %>
<div id="fb-root"></div>
<div id="error-message"></div>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId : "<%= Facebook::CONFIG['app_id'] %>",
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
var cb = function(response) {
if (response.session) {
// user successfully logged in
load_pages(response.session.uid);
} else {
// user isn't logged in for some reason, prompt again.
FB.login(cb);
//document.getElementById("error-message").innerHTML = "Unable to connect to Facebook.";
}
};
(function() {
FB.getLoginStatus(cb);
}());
};
function load_pages(fb_user_id) {
FB.api(
{
method: "fql.multiquery",
queries: {
"query1" : "SELECT page_id FROM page_admin WHERE uid=" + fb_user_id,
"result" : "SELECT page_id, name FROM page WHERE page_id IN (SELECT page_id FROM #query1)"
}
},
function(response) {
// TODO what if user doesn't have any pages?
var results = response[response.length-1].fql_result_set; // [{name, page_id}, ...]
if(window.opener.addChannelsForm != null)
window.opener.addChannelsForm.loadChannels(results, {medium: 'facebook', success: false});
window.close();
}
);
}
</script>
<% end %>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment