大佬教程收集整理的这篇文章主要介绍了在Android登录后获取facebook电子邮件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import java.io.FileNotFoundException; import java.io.IOException; import java.net.MalformedURLException; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.util.Log; import android.widget.ProgressBar; import android.widget.TextView; import com.facebook.android.AsyncFacebookRunner; import com.facebook.android.AsyncFacebookRunner.RequestListener; import com.facebook.android.DialogError; import com.facebook.android.Facebook; import com.facebook.android.Facebook.DialogListener; import com.facebook.android.FacebookError; import com.facebook.android.Util; public class FacebookConnect extends Activity{ public static final String TAG = "FACEBOOK"; private Facebook mFacebook; public static final String APP_ID = "XXX"; private AsyncFacebookRunner mAsyncRunner; private static final String[] PERMS = new String[] { "read_stream" }; private SharedPreferences sharedPrefs; private Context mContext; private TextView username; private ProgressBar pb; String fbId,fbName,fbEmail; public void setConnection() { mContext = this; mFacebook = new Facebook(APP_ID); mAsyncRunner = new AsyncFacebookRunner(mFacebook); } public void getID(TextView txtUserName,ProgressBar progbar) { username = txtUserName; pb = progbar; if (isSession()) { Log.d(TAG,"sessionValid"); mAsyncRunner.request("me",new IDRequestListener()); } else { // no logged in,so relogin Log.d(TAG,"sessionNOTValid,relogin"); mFacebook.authorize(this,PERMS,new LoginDialogListener()); } } public boolean isSession() { sharedPrefs = PreferenceManager.getDefaultSharedPreferences(mContext); String access_token = sharedPrefs.getString("access_token","x"); Long expires = sharedPrefs.getLong("access_expires",-1); Log.d(TAG,access_token); if (access_token != null && expires != -1) { mFacebook.setAccessToken(access_token); mFacebook.setAccessExpires(expires); } return mFacebook.isSessionValid(); } private class LoginDialogListener implements DialogListener { @Override public void onComplete(Bundle values) { Log.d(TAG,"LoginONComplete"); String token = mFacebook.getAccessToken(); long token_expires = mFacebook.getAccessExpires(); Log.d(TAG,"AccessToken: " + token); Log.d(TAG,"AccessExpires: " + token_expires); sharedPrefs = PreferenceManager .getDefaultSharedPreferences(mContext); sharedPrefs.edit().putLong("access_expires",token_expires).commit(); sharedPrefs.edit().putString("access_token",token).commit(); mAsyncRunner.request("me",new IDRequestListener()); } @Override public void onFacebookError(FacebookError e) { Log.d(TAG,"FacebookError: " + e.getMessage()); } @Override public void onError(DialogError e) { Log.d(TAG,"Error: " + e.getMessage()); } @Override public void onCancel() { Log.d(TAG,"OnCancel"); } } private class IDRequestListener implements RequestListener { @Override public void onComplete(String response,Object state) { try { Log.d(TAG,"IDRequestONComplete"); Log.d(TAG,"Response: " + response.toString()); JSONObject json = Util.parseJson(response); fbId = json.getString("id"); fbName = json.getString("name"); //fbEmail = json.getString("email"); FacebookConnect.this.runOnUiThread(new Runnable() { public void run() { username.setText("Welcome: " + name + "\n ID: " + fbId); pb.setVisibility(ProgressBar.GONE); } }); } catch (JSONException e) { Log.d(TAG,"JSONException: " + e.getMessage()); } catch (FacebookError e) { Log.d(TAG,"FacebookError: " + e.getMessage()); } } @Override public void onIOException(IOException e,Object state) { Log.d(TAG,"IOException: " + e.getMessage()); } @Override public void onFileNotFoundException(FileNotFoundException e,"FileNotFoundException: " + e.getMessage()); } @Override public void onMalformedURLException(MalformedURLException e,"MalformedURLException: " + e.getMessage()); } @Override public void onFacebookError(FacebookError e,"FacebookError: " + e.getMessage()); } } @Override protected void onActivityResult(int requestCode,int resultCode,Intent data) { mFacebook.authorizeCallback(requestCode,resultCode,data); } }@H_502_3@作为回应我得到一个JSON.例:
08-15 14:22:42.160: DEBUG/FACEBOOK(1258): Response: {"id":"3159628280","name":"Peter Black","first_name":"Peter","last_name":"Black","link":"http:\/\/www.facebook.com\/Peter.Black","username":"Peter.Black","gender":"male","timezone":3,"locale":"bg_BG","verified":true,"updated_time":"2011-08-14T08:42:59+0000"}@H_502_3@
以上是大佬教程为你收集整理的在Android登录后获取facebook电子邮件全部内容,希望文章能够帮你解决在Android登录后获取facebook电子邮件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。