public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); facebookLogin(); } public void facebookLogin() { shareAppPreferences = new AppPreferences(getApplicationContext()); facebook = new Facebook("APP KEY");//((GlobalVars)getApplicationContext()).facebook; Log.d("MyTag","access key: "+ shareAppPreferences.getAccessKey()); String access_token = shareAppPreferences.getAccessToken(); Long expires = shareAppPreferences.getAccessExpires(); Log.d("MyTag","token:" +access_token); if(access_token != null) { facebook.setAccessToken(access_token); } if(expires != 0) { facebook.setAccessExpires(expires); } /* * Only call authorize if the access_token has expired. */ if(!facebook.isSessionValid()) { Log.d("MyTag","In Authorize"); facebook.authorize(this, new String[] {"publish_stream", "email"}, Facebook.FORCE_DIALOG_AUTH, new DialogListener() { public void onComplete(Bundle values) { shareAppPreferences.saveAccessToken(facebook.getAccessToken()); Log.d("MyTag","face token: " +facebook.getAccessToken()); shareAppPreferences.saveAccessExpires(facebook.getAccessExpires()); completeLogin(); } public void onFacebookError(FacebookError e) { Toast.makeText(getBaseContext(), "onFacebookError", Toast.LENGTH_SHORT).show(); } public void onError(DialogError e) { Toast.makeText(getBaseContext(), "onError", Toast.LENGTH_SHORT).show(); } public void onCancel() { } }); } else{ completeLogin(); } } private void completeLogin() { shareLinkOnFB(); Intent intent = new Intent(this,MainActivity.class); Log.d("MyTag", "starting activity"); startActivity(intent); } public void shareLinkOnFB(){ Facebook mFacebook = ((GlobalVars)getApplicationContext()).facebook; AsyncFacebookRunner mAsyncRunner; mAsyncRunner = new AsyncFacebookRunner(mFacebook); Bundle params = new Bundle(); params.putString("message", "Test"); params.putString("name", "ka"); params.putString("link", "http://www.facebook.com"); params.putString("description", "desc ..."); mAsyncRunner.request("me/feed", params, new WallPostRequestListener()); Toast.makeText(Login.this, "Posting to your Wall...", Toast.LENGTH_SHORT).show(); } public class WallPostRequestListener extends BaseRequestListener { public void onComplete(final String response, final Object state) { Log.d("Facebook-Example", "Got response: " + response); String message = ""; try { JSONObject json = Util.parseJson(response); message = json.getString("message"); } catch (JSONException e) { Log.w("Facebook-Example", "JSON Error in response"); } catch (FacebookError e) { Log.w("Facebook-Example", "Facebook Error: " + e.getMessage()); } final String text = "Your Wall Post: " + message; } } public abstract class BaseRequestListener implements RequestListener { public void onFacebookError(FacebookError e, final Object state) { Log.e("Facebook", e.getMessage()); e.printStackTrace(); } public void onFileNotFoundException(FileNotFoundException e, final Object state) { Log.e("Facebook", e.getMessage()); e.printStackTrace(); } public void onIOException(IOException e, final Object state) { Log.e("Facebook", e.getMessage()); e.printStackTrace(); } public void onMalformedURLException(MalformedURLException e, final Object state) { Log.e("Facebook", e.getMessage()); e.printStackTrace(); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); facebook.authorizeCallback(requestCode, resultCode, data); }