Using FBGraph in iPhone

The FBGraph API is bit complex, but much useful than any other ways for accessing contents of Facebook.

INTRODUCTION

============

Object Output:

{

“name”: “Facebook Platform”,

“type”: “page”,

“website”: “http://developers.facebook.com”,

“username”: “platform”,

“founded”: “May 2007”,

“company_overview”: “Facebook Platform enables anyone to build…”,

“mission”: “To make the web more open and social.”,

“products”: “Facebook Application Programming Interface (API)…”,

“fan_count”: 449921,

“id”: 19292868552,

“category”: “Technology”

}

 

All objects in Facebook can be accessed in the same way:

https://graph.facebook.com/ID/CONNECTION_TYPE

 

* Users: https://graph.facebook.com/btaylor (Bret Taylor)

* Pages: https://graph.facebook.com/cocacola (Coca-Cola page)

* Events: https://graph.facebook.com/251906384206 (Facebook Developer Garage

Austin)

* Groups: https://graph.facebook.com/2204501798 (Emacs users group)

* Applications: https://graph.facebook.com/2439131959 (the Graffiti app)

* Status messages: https://graph.facebook.com/367501354973 (A status message

from Bret)

* Photos: https://graph.facebook.com/98423808305 (A photo from the Coca-Cola

page)

* Photo albums: https://graph.facebook.com/99394368305 (Coca-Cola’s wall

photos)

* Videos: https://graph.facebook.com/614004947048 (A Facebook tech talk on

Tornado)

* Notes: https://graph.facebook.com/122788341354 (Note announcing Facebook

for iPhone 3.0)

 

Logged-in User Objects

 

* Friends: https://graph.facebook.com/me/friends

* News feed: https://graph.facebook.com/me/home

* Profile feed (Wall): https://graph.facebook.com/me/feed

* Likes: https://graph.facebook.com/me/likes

* Movies: https://graph.facebook.com/me/movies

* Books: https://graph.facebook.com/me/books

* Notes: https://graph.facebook.com/me/notes

* Photos: https://graph.facebook.com/me/photos

* Videos: https://graph.facebook.com/me/videos

* Events: https://graph.facebook.com/me/events

* Groups: https://graph.facebook.com/me/groups

 

SELECTION

=========

fields => https://graph.facebook.com/bgolub?fields=id,name,picture

ids => https://graph.facebook.com?ids=arjun,vernal

current user => https://graph.facebook.com/me

 

INSTROSPECTION

==============

https://graph.facebook.com/331218348435?metadata=1

 

{

“name”: “Facebook Developer Garage Austin – SXSW Edition”,

“metadata”: {

“connections”: {

“feed”: “http://graph.facebook.com/331218348435/feed”,

“picture”: “https://graph.facebook.com/331218348435/picture”,

“invited”: “https://graph.facebook.com/331218348435/invited”,

“attending”: “https://graph.facebook.com/331218348435/attending”,

“maybe”: “https://graph.facebook.com/331218348435/maybe”,

“noreply”: “https://graph.facebook.com/331218348435/noreply”,

“declined”: “https://graph.facebook.com/331218348435/declined”

}

}

}

 

AUTHORIZATION

=============

https://graph.facebook.com/220439?access_token=…

 

The steps to obtain an access token are:

 

* Get App ID and secret.

 

* Redirect the user to https://graph.facebook.com/oauth/authorize with your

client_id and the callback URL:

 

https://graph.facebook.com/oauth/authorize?

client_id=…&

redirect_uri=http://www.example.com/oauth_callback

 

* Redirect the user back to the callback URL you specified with a verification

string in the argument code, which can be exchanged for an oauth access token.

 

https://graph.facebook.com/oauth/access_token?

client_id=…&

redirect_uri=http://www.example.com/oauth_callback&

client_secret=…&

code=…

 

* Use the access token returned by the request above to make requests on behalf

of the user:

 

https://graph.facebook.com/me?access_token=…

 

PUBLISH TO FACEBOOK

===================

curl -F ‘access_token=…’

-F ‘body=Hello, Arjun. I like this new API.’

https://graph.facebook.com/arjun/feed

 

curl -F ‘access_token=…’

https://graph.facebook.com/313449204401/likes

 

 

We support writing the following types of objects:

 

Method               Description                           Arguments

 

——————————————————————————-

/PROFILE_ID/feed     write to the given profile’s feed/wall message,

picture, link, name, description

/POST_ID/comments   comment on the given post             message

/POST_ID/likes       like the given post                   none

/PROFILE_ID/notes   write a note on the given profile     message, subject

/PROFILE_ID/links   write a link on the given profile     link, message

/EVENT_ID/attending attend the given event                 none

/EVENT_ID/maybe     maybe attend the given event           none

/EVENT_ID/declined   decline the given event               none

 

curl -F ‘access_token=…’

-F ‘message=I am posting to my own feed. I am awesome.’

https://graph.facebook.com/me/feed

 

DELETING OBJECT

===============

DELETE https://graph.facebook.com/ID?access_token=… HTTP/1.1

https://graph.facebook.com/COMMENT_ID?method=delete

 

PICTURES

========

<img src=”https://graph.facebook.com/herryanto/picture”/>

 

* People: http://graph.facebook.com/herryanto/picture

* Events: http://graph.facebook.com/331218348435/picture

* Groups: http://graph.facebook.com/335845912900/picture

* Pages: http://graph.facebook.com/DoloresPark/picture

* Applications: http://graph.facebook.com/2318966938/picture

* Photo Albums: http://graph.facebook.com/platform/picture

 

PICTURE SIZES:

– square (50×50)

– small  (50 pixels wide, variable height)

– large (about 200 pixels wide, variable height)

 

http://graph.facebook.com/herryanto/picture?type=large.

 

PAGING

======

 

* limit, offset: https://graph.facebook.com/me/likes?limit=3

* until, since (a unix timestamp or any date accepted by strtotime):

 

https://graph.facebook.com/search?until=yesterday&q=orange

 

SEARCH

======

https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE

 

* All public posts: https://graph.facebook.com/search?q=watermelon&type=post

* People: https://graph.facebook.com/search?q=mark&type=user

* Pages: https://graph.facebook.com/search?q=platform&type=page

* Events: https://graph.facebook.com/search?q=conference&type=event

* Groups: https://graph.facebook.com/search?q=programming&type=group

 

News Feed: https://graph.facebook.com/me/home?q=facebook

 

ANALYTICS

=========

 

Obtain Access Token:

 

curl -F type=client_cred

-F client_id=your_app_id

-F client_secret=your_app_secret

https://graph.facebook.com/oauth/access_token

 

https://graph.facebook.com/app_id/insights?access_token=…

 

https://graph.facebook.com/app_id/insights/share_views/day?access_token=…

 

Params:

* since

* until

 

https://graph.facebook.com/app_id/insights?access_token=…&since=yesterday

 

Now, Passing these parameters to FBGraph in iPhone way.

1) Get Authentication (get access_token) :

/*Facebook Application ID*/

NSString *client_id = @“your app id”;

//alloc and initalize our FbGraph instance

self.fbGraph = [[FbGraph alloc] initWithFbClientID:client_id];

// //begin the authentication process…..

[fbGraph authenticateUserWithCallbackObject:self andSelector:@selector(fbGraphCallbackForRegister:)
andExtendedPermissions:@”user_photos,user_videos,publish_stream,offline_access,user_checkins,friends_checkins,email,user_birthday,user_online_presence” andSuperView:self.view] ;

**Note : fbGraphCallbackForRegister method returns access_token.

 

2) Logged-In UserInfo :

FbGraphResponse *fb_graph_response = [fbGraph doGraphGet:@”me” withGetVars:nil];

NSLog(@”getMeButtonPressed:  %@”, fb_graph_response.htmlResponse);

3) Get Logged-In user profile picture :
There are few sizes of profile picture.

http://graph.facebook.com/herryanto/picture?type=large

http://graph.facebook.com/herryanto/picture

 

4) Get User Friends (Needs authentication)

FbGraphResponse *fb_graph_response = [fbGraph doGraphGet:@”me/friends” withGetVars:nil];

NSLog(@”getFriendsButtonPressed:  %@”, fb_graph_response.htmlResponse);

 


 

 


Need more help?

Hi there, was your problem or query resolved? If not & need more assistance, please do reach out to us at info@nanostuffs.com, we'll be more than delighted to help. Nanostuffs has 7+ years of extensive Salesforce & iOS/Android experience.
Holler Box