connect to facebook graph api

9
Connect to Facebook Graph API Michael Abramowitz

Upload: mayes

Post on 25-Feb-2016

49 views

Category:

Documents


1 download

DESCRIPTION

Connect to Facebook Graph API. Michael Abramowitz. Reasons To Use Facebook API. Social Design Social Design is a way of thinking about product design that puts social experiences at the core. Create these social experiences with the features available on Facebook Platform. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Connect to  Facebook  Graph API

Connect to Facebook Graph API

Michael Abramowitz

Page 2: Connect to  Facebook  Graph API

Reasons To Use Facebook API• Social Design

– Social Design is a way of thinking about product design that puts social experiences at the core. Create these social experiences with the features available on Facebook Platform.

– Build “inside out” or “outside in”

• According to Facebook:– Utilize the existing robust Facebook community to define new conversations and let users continue to

build their identities further– Utilizing Community

• Communities feel familiar, relevant and trusted by default. Surface users' interests and their friends in your app to create personalized user experiences

– Building Conversation.• Conversations are how people express their identities to communities and how they receive

feedback from them. Build experiences that give people the power to connect and share.– Listening" : Displaying personalized content, social context and user activity– "Speaking" : Making it easy for users to talk, share, give feedback and engage

– Curating Identity • Users share and interact with others because self expression feels good and rewarding. Help

them learn more about themselves and curate their identity.

Page 3: Connect to  Facebook  Graph API

OAuth• IETF RFC 5849, The OAuth Protocol, defines OAuth as12:

– ...a method for clients to access server resources on behalf of a resource owner (such as a different client or an end-user). It also provides a process for end-users to authorize third-party access to their server resources without sharing their credentials (typically, a username and password pair), using user-agent redirections.

• Client: HTTP Server making OAuth-authenticated requests (YourAndroidApp) • Server: HTTP Server receiving and responding to OAuth-authenticated requests (Facebook)• Protected Resource: Access-restricted resource that can be obtained from the Server using Oauth-

authenticated request (Facebook Graph Data) • Resource-Owner: Entity capably of accessing and controlling protected resources by using credentials to

authenticate with the server (YourAndroidApp User with Facebook Account) • Client Credentials: used to identify and authenticate client (YourAndroidApp credentials at Facebook ;

Facebook API Key and Secret Key) • Temporary Credentials: credentials obtained using the authorization request of resource owner

(intermediation credentials of YourAndroidApp @ Facebook) • Token: unique identifier issued by the server and used by client to associate authentication requests with

the resource owner whose authentication is requested or has been obtained (YourAndroidApp permission to use Facebook on behalf of User)

Page 4: Connect to  Facebook  Graph API

Oauth

Page 5: Connect to  Facebook  Graph API

Oauth on Facebook from Androidhttp://developers.facebook.com/docs/mobile/android/build/• Register App and get App ID and APP Secret• Include in creation of Facebook object• App id is included when creating the Facebook

Object• Facebook fb = new Facebook(“YOUR_APP_ID”);• User is Redirected To Login Portal

– User must provide authorizations – If Facebook is installed on device and user

is logged in• Do not need to enter credentials

Page 6: Connect to  Facebook  Graph API

SSO and Permissions• By default, the user is asked to authorize the app to

access basic information that is available publicly or by default on Facebook. If your app needs more than this basic information to function, you must request specific permissions from the user.

• Just list Permissioning Enumerations in String Array on Authorize call

http://developers.facebook.com/docs/authentication/permissions/

• Grants Access to other Portions of Graph API

Example:facebook.authorize(this, new String[] { "email", "publish_checkins" }, new

DialogListener() { @Override public void onComplete(Bundle values) {} @Override public void onFacebookError(FacebookError error) {} @Override public void onError(DialogError e) {} @Override public void onCancel() {} } );

• SSO allosw

Page 7: Connect to  Facebook  Graph API

SSO• Single Sign-On allows user to authorize your app without typing their facebook username and password. This is accomplished by

sharing intent with the Facebook app. If the user has already installed and authorized the facebook app, your app can leverage the Facebook app authentication via Single Sign On.

public class MyGreatActivity extends Activity { Facebook facebook = new Facebook("YOUR_APP_ID"); @Override public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.main); facebook.authorize(this, new DialogListener() { @Override public void onComplete(Bundle values) {} @Override public void onFacebookError(FacebookError error) {} @Override public void onError(DialogError e) {} @Override public void onCancel() {} }); }

@Override public void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data); facebook.authorizeCallback(requestCode, resultCode, data); }

}

Store acces tokens in prefence bundles

Page 8: Connect to  Facebook  Graph API

Android SDK Documentation AsyncFacebookRunner

• http://developers.facebook.com/docs/reference/androidsdk/• Use AsyncFacebookRunner

– AsyncFacebookRunner(Facebook facebook);– request(String graphPath, Bundle parameters, RequestListener

listener);• The Asynchronous API request methods which returns immediately

without blocking the calling thread. These are defined in AsyncFacebookRunner.java. This is necessary when accessing the API in the UI thread, for instance. The request response is returned to the caller via the RequestListener interface, which the developer must implement.

• The RequestListener Interface provides the callback methods for asynchronous request methods. These are defined in AsyncFacebookRunner.java.

Page 9: Connect to  Facebook  Graph API

Make Calls with AsyncRunner and RequestListener

• AsyncRunner– myAsyncRunner.request(“path”, parameters, new requestListener(){

@Override public void onComplete(String values) {} @Override public void onFacebookError(FacebookError error) {} @Override public void onError(DialogError e) {} @Override public void onCancel() {} }); }

}