16. Better API interaction
RequestAsyncTask RequestBatch
Facebook.request
Request
Your
App FacebookError
Response
FacebookException FacebookRequestError
FacebookAuthorizationException FacebookServiceException
17. Initializing with the SDK 2.0
‣ Instantiate the Facebook object with your App ID
‣ Most activity managed from the Facebook object
fbconnection
=
new
Facebook("1123581321");
fbconnection.authorize(
getActivity(),
new
String[]
("publish_actions",
“user_likes”),
dialogListener);
18. Initializing with the SDK 3.0
‣ Greater separation of concerns: Session, Request, Response, UI elements
‣ Set up the App ID through the string resources and Android Manifest files
<string
name="app_id">480369938658210</string>
...
<meta-‐data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id"
/>
</application>
19. Activity Lifecycle with SDK 2.0
‣ Extend the FacebookActivity class
‣ Handle session state changes by overriding the abstract method in
FacebookActivity
public
class
MainActivity
extends
FacebookActivity
{
@Override
protected
void
onSessionStateChange(
SessionState
state,
Exception
exception)
{
...
}
20. Activity Lifecycle with SDK 3.0
‣ Keep your own Activities
‣ Instantiate a UiLifeCycleHelper and keep it in step with your Activity
public
class
MainActivity
extends
WhateverYouWantActivity
{
@Override
public
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
uiHelper
=
new
UiLifecycleHelper(this,
callback);
uiHelper.onCreate(savedInstanceState);
21. Session Lifecycle
new Session() CREATED_TOKEN_LOADED session.open()
valid Yes OPENED
cache?
OPENING
Yes
success?
No
CREATED session.openFor…()
No
CLOSED_LOGIN_FAILED
22. Session Lifecycle
session.close() CLOSED
OPENED_TOKEN_UPDATED
OPENED
Yes
success?
session.reauthorizeFor…()
No
OPENED