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 = "<empty>";
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);
}