Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cualquier ejemplo que muestre cómo iniciar sesión con Facebook SDK 4.0 en Android, ya sea utilizando el botón propio o el botón de Facebook?

¿Hay algún tutorial o ejemplo que muestre cómo iniciar sesión usando el propio botón con Facebook SDK 4.0 en Android ? No estoy consiguiendo dondequiera y usando el Web site de los reveladores de Facebook es difícil de entender. Como abajo al llamar al botón de FBlogin Quiero comprobar para ir para la conexión si el usuario no ha entrado o si está conectado deseo el token del acceso para conseguir información del perfil de Facebook y Le gusta al usuario.

FBlogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Facebook login Code to get profile info and user likes } }); 

He intentado también loginButton Facebook.

  <com.facebook.login.widget.LoginButton android:id="@+id/login_button" android:layout_width="244dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="30dp" android:layout_marginBottom="30dp" /> 

Pero está demostrando error en xml: –

 java.lang.NoClassDefFoundError: Could not initialize class com.facebook.login.widget.LoginButton at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:413) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105) at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:176) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:206) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:131) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:739) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:711) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:372) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:369) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:326) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:708) at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:697) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932) at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:697) at com.android.tools.idea.rendering.RenderService.render(RenderService.java:816) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:646) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:82) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:589) at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:584) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:327) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 

Mi clase de actividad: –

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); setContentView(R.layout.activity_main); 

Ia hay algún ejemplo / tutorial para iniciar sesión con Facebook sdk4.0? Estoy atrapado en ambos sentidos. Por favor ayuda.

  • Cómo inhabilitar el registro de eventos de Facebook SDK?
  • Invitar a los usuarios con AppInviteDialog
  • Android studio Problema: No se han podido encontrar anuncios: AdQuality: no especificado
  • Android Facebook 4.0 SDK Cómo obtener correo electrónico, fecha de nacimiento y sexo del usuario
  • Android facebook sdk 4.0 ProfileTracker onCurrentProfileChanged nunca se llama
  • Android Facebook SDK 4 en Eclipse
  • Utiliza ShareContent de Facebook sdk en la intención de acciones android
  • Error de Gradle después de incluir facebook sdk
  • 6 Solutions collect form web for “Cualquier ejemplo que muestre cómo iniciar sesión con Facebook SDK 4.0 en Android, ya sea utilizando el botón propio o el botón de Facebook?”

    Esto podría ayudarle

     // Custom button private Button fbbutton; // Creating Facebook CallbackManager Value public static CallbackManager callbackmanager; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Initialize SDK before setContentView(Layout ID) FacebookSdk.sdkInitialize(getApplicationContext()); setContentView(R.layout.activity_main); // Initialize layout button fbbutton = (Button) findViewById(R.id.button2); fbbutton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // Call private method onFblogin(); } }); } // Private method to handle Facebook login and callback private void onFblogin() { callbackmanager = CallbackManager.Factory.create(); // Set permissions LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email","user_photos","public_profile")); LoginManager.getInstance().registerCallback(callbackmanager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { System.out.println("Success"); GraphRequest.newMeRequest( loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject json, GraphResponse response) { if (response.getError() != null) { // handle error System.out.println("ERROR"); } else { System.out.println("Success"); try { String jsonresult = String.valueOf(json); System.out.println("JSON Result"+jsonresult); String str_email = json.getString("email"); String str_id = json.getString("id"); String str_firstname = json.getString("first_name"); String str_lastname = json.getString("last_name"); } catch (JSONException e) { e.printStackTrace(); } } } }).executeAsync(); } @Override public void onCancel() { Log.d(TAG_CANCEL,"On cancel"); } @Override public void onError(FacebookException error) { Log.d(TAG_ERROR,error.toString()); } }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackmanager.onActivityResult(requestCode, resultCode, data); } 

    En el manifiesto siguiente,

     <application android:allowBackup="true" android:icon="@drawable/app_icon" android:label="@string/app_name" android:theme="@style/AppTheme" > . . <!-- [START Facebook] --> <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" /> <!-- [END Facebook] --> . . </application> 

    La mejor solución es iniciar sesión utilizando LoginManager. Aquí está cómo manejé esto (en el tecleo se hace con ButterKnife):

      @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCallbackManager = CallbackManager.Factory.create(); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); LoginManager.getInstance().registerCallback(mCallbackManager, this); } @OnClick(R.id.facebook_login_button) @SuppressWarnings("unused") public void loginWithFacebookAccount() { LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email")); } @Override public void onSuccess(LoginResult loginResult) { Bundle parameters = new Bundle(); parameters.putString("fields", "id,name,last_name,link,email,picture"); GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), (jsonObject, graphResponse) -> { String id = null; if (jsonObject != null) { try { id = jsonObject.getString("id"); } catch (JSONException e) { e.printStackTrace(); } } }); request.setParameters(parameters); request.executeAsync(); } @Override public void onCancel() { } @Override public void onError(FacebookException e) { } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { mCallbackManager.onActivityResult(requestCode, resultCode, data); } } 

    Así es como lo he conseguido. Siéntete libre de preguntar 😉

     public class AuthWFacebookSDKFour extends Activity implements View.OnClickListener,FacebookCallback<LoginResult> { List<String> permissionNeeds=Arrays.asList("user_photos","friends_photos", "email", "user_birthday", "user_friends"); //facebook callbacks manager private CallbackManager cm; private LoginButton mFbLoginButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //init facebook sdk and FacebookSdk.sdkInitialize(getApplicationContext()); //instantiate callbacks manager mCallbackManager = CallbackManager.Factory.create(); mFbLoginButton=(LoginButton)findViewById(R.id.FBBUTTONID); //set permissions mFbLoginButton.setReadPermissions(ApplicationContext.facebookPermissions); // register callback //means hey facebook after login call onActivityResult of **this** mFbLoginButton.registerCallback(mCallbackManager, this); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //manage login result mCallbackManager.onActivityResult(requestCode, resultCode, data); } @Override public void onSuccess(LoginResult loginResults) { //login ok get access token AccessToken.getActiveAccessToken(); } @Override public void onCancel() { Log.e(TAG(),"facebook login canceled"); } @Override public void onError(FacebookException e) { Log.e(TAG(),"facebook login failed error"); } } 

    Recuerde insertar en el manifiesto

     <activity android:name="com.facebook.FacebookActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 

    Para Facebook SDK versión 4.X, En su actividad o fragmento (generalmente en el método onCreate ()):

     // Initialize Facebook Sdk before UI FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.setReadPermissions("user_friends"); // Callback registration loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { // App code Log.v(TAG, "fblogin onSuccess"); } @Override public void onCancel() { // App code Log.v(TAG, "fblogin onCancel"); } @Override public void onError(FacebookException exception) { // App code Log.v(TAG, "fblogin onError"); } }); 

    Y también no se olvide de pasar el resultado de la actividad de Facebook al administrador:

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { ... callbackManager.onActivityResult(requestCode, resultCode, data); } 

    Uso de Android facebook SDK 4.X Iniciar sesión con Faceboook Por defecto Login_button

     public class FbDefaultBtnLogin extends AppCompatActivity { private CallbackManager callbackManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); setContentView(R.layout.activity_fb_default_btn_login); callbackManager = CallbackManager.Factory.create(); // LoginButton loginButton=(LoginButton)findViewById(R.id.login_button); LoginManager.getInstance().logInWithReadPermissions(this,Arrays.asList("email","user_photos","public_profile")); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { } @Override public void onCancel() { } @Override public void onError(FacebookException e) { } }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); } <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.jitendra.facebooklogin.FbDefaultBtnLogin"> <!--<com.facebook.login.widget.LoginButton--> <!--android:id="@+id/login_button"--> <!--android:layout_width="wrap_content"--> <!--android:layout_height="wrap_content"--> <!--android:layout_gravity="center_horizontal"--> <!--android:layout_marginTop="30dp"--> <!--android:layout_marginBottom="30dp" /> </RelativeLayout> 

    En Mainifest: –

      <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id" /> <activity android:name="com.facebook.FacebookActivity" android:theme="@style/AppTheme" > </activity> 

    Hola mira este tutorial: haz clic aquí

    En este tutorial puede obtener el último ejemplo de SDK de Facebook con lógica de botón de inicio de sesión y logout personalizados . Introduzca aquí la descripción de la imagen

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.