Simple facebook api client
npm install fbgraphapi const app = express();
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser())
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: false }
}))
app.use(fbgraph.auth( {
appId : "...",
appSecret : "...",
redirectUri : "http://0.0.0.0:3000/",
apiVersion: "v2.9",
skipUrlPatterns: ["/favicon.ico"]
}));
app.get('/login', function(req, res) {
console.log('Start login');
fbgraph.redirectLoginForm(req, res);
});
app.get('/', function(req, res) {
if (!req.hasOwnProperty('facebook')) {
console.log('You are not logged in');
return res.redirect('/login');
}
/ See http://developers.facebook.com/docs/reference/api/ for more /
req.facebook.graph('/me', function(err, me) {
console.log(me);
});
req.facebook.graph('/me?fields=id,name', function(err, me) {
console.log(me);
});
req.facebook.me(function(err, me) {
console.log(me);
});
// /me/likes
req.facebook.my.likes(function(err, likes) {
console.log(likes);
});
res.end("Check console output");
});
app.listen(3000);
Or if have a valid access token for instance from javascript fb connect
var fb = new fbgraph.Facebook(accessToken, 'v2.2');
fb.me(function(err, me) {
console.log(me);
});
Or do stuff on behalf of the app or user with granted permissions
var fb = new fbgraph.Facebook(fbgraph.getAppId() + '|' + fbgraph.getAppSecret());
fb.post('/{user-id}/feed', {message: 'Hello world'},function(err, res) {
console.log(err, res);
});
appId Facebook application IdappSecret Secret hash key generated by FacebookredirectUri The url to redirect to when user logged in.apiVersion Which api version to use, example v2.2scope Permissions/scope that your application asks for, optional and default empty.skipUrlPatterns Array of patterns which to not apply authentication on. They can be regexp or string. If string a regexp will be created with wildcard appending at the end. If you want an exact url make sure specify regexp.accessToken Valid access token from Facebook (oauth_token).apiVersion Which api version to use.graph(path, callback) Main method for making call to Facebook API. Path can contain only /me/likes or with params like /me/likes?limit=3.post(path, params, callback) or post(path, callback) Publishing to Facebook, see https://developers.facebook.com/docs/graph-api/using-graph-api/v2.0#publishing for detail. Path can contain post data such as /123/feed?message=hello.update(path, params, callback) or update(path, callback) Updating a post on Facebook, see https://developers.facebook.com/docs/graph-api/using-graph-api/v2.0#updating for defail. Path can contain post data such as /123_123456789?message=edited.delete(path, callback) Deleting a post on Facebook, see https://developers.facebook.com/docs/graph-api/using-graph-api/v2.0#deleting for defail.fql(query, callback) Specific method for making fql query to Facebook API.search(params, callback) params is an object which properties are any param based on this https://developers.facebook.com/docs/graph-api/using-graph-api#search.me(callback, fields) Specific method to get info of the logged user, same as /me when using graph-method. Fields is comma-separated for instance fields=id,name.my Instance of My classUsage: if have a valid accessToken for instance from js login
var fb = new Facebook(accessToken, 'v2.2');
fb.me(function(err, me) {
console.log(me);
});
Supported connection types are:
* friends
* feed
* likes
* movies
* music
* books
* albums
* notes
* permissions
* photos
* videos
* events
* groups
* checkins
* locations
If you can not find a connection that Facebook has but not here you can use connection-method
req.facebook.my.connection('{connection type}', function(err, result) {
console.log(result)
});