Jedes Beispiel zeigt, wie man sich mit Facebook SDK 4.0 in Android entweder mit eigenen Button oder Facebook Button anmelden?

Gibt es ein Tutorial oder ein Beispiel, wie man sich mit dem eigenen Button mit Facebook SDK 4.0 in Android anmeldet ? Ich bin nicht immer irgendwo und mit facebook-Entwickler-Website ist es schwer zu verstehen.Wie unten beim Aufruf FBlogin- Taste Ich möchte überprüfen, gehen für Login, wenn Benutzer nicht angemeldet hat oder wenn angemeldet Ich möchte das Access-Token, um Facebook-Profil-Informationen zu bekommen und Benutzer mag.

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

Ich habe auch versucht LoginButton Facebook.

  • Die Anwendung ist unerwartet gestoppt: Wie kann ich debuggen?
  • Erlaube nur meine Android-Apps, um Endpunkt-API in Java auszuführen
  • Twitter Wie bekomme ich User-Profil pic mit Fabric Plugin in Android Studio (Fixed)
  • Google Map-Cluster mit Richtung
  • Hinzufügen eines Fragments zu einem Dialog
  • Warum hat 'android: screenOrientation = "hinter" `kein Effekt in Android 4.1.2?
  •   <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" /> 

    Aber es zeigt Fehler in 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) 

    Meine Aktivitätsklasse: –

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

    Ia gibt es ein Beispiel / Tutorial, um sich mit facebook sdk4.0 anmelden? Ich stecke in beide Richtungen. Bitte helfen Sie.

  • Android TCP-Verbindung Best Practice
  • Cordova build --release android immer die höchste api Ebene
  • InMobi-Fehler beim Auslösen des Testmodus
  • Für die Dichte für die API Level <15
  • Ändern der App-Widget-Hintergrundfarbe programmatisch
  • Wie man einen Android Spinner mit dem ersten Text "Select One"
  • 6 Solutions collect form web for “Jedes Beispiel zeigt, wie man sich mit Facebook SDK 4.0 in Android entweder mit eigenen Button oder Facebook Button anmelden?”

    Dies könnte Ihnen helfen

     // 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); } 

    In manifest hinzufügen folgt,

     <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> 

    Die beste Lösung ist, sich mit dem LoginManager anzumelden. Hier ist, wie ich das geschafft habe (auf Klick wird mit ButterKnife gemacht):

      @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); } } 

    So habe ich es gemacht. Fragen sind willkommen 😉

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

    Denken Sie daran, in Manifest einzufügen

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

    Für Facebook SDK Version 4.X, In Ihrer Aktivität oder Fragment (in der Regel auf onCreate () Methode):

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

    Und auch nicht vergessen zu übergeben facebook Aktivitätsergebnis an Manager:

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

    Verwenden von Android facebook SDK 4.X Login mit faceboook Standard 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> 

    In 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> 

    Hallo dieses Tutorial: hier klicken

    In diesem Tutorial kannst du das neueste Facebook SDK Beispiel mit benutzerdefinierter Login und Logout Button Logik. Bildbeschreibung hier eingeben

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.