2015-11-14 5 views

ответ

8

ШАГ ПЕРВЫЙ

ли вы зарегистрировали свое приложение? Если вы этого не сделали, перейдите к https://developers.facebook.com/apps/, нажмите Добавьте новое приложение в верхнем правом углу и следуйте инструкциям.

ШАГ ВТОРОЙ

2-й шаг добавить Facebook SDK для вашего проекта. Вы можете сделать это следовать https://developers.facebook.com/docs/android/getting-started

  • В Android Studio, создайте новый проект с API 15, как минимальный SDK

  • The Facebook SDK доступен на Maven Central, поэтому редактировать build.gradle и добавить repositories { mavenCentral() } до того dependencies

  • Затем добавьте compile 'com.facebook.android:facebook-android-sdk:4.7.0 в dependencies

  • Создайте свой проект и инициализировать Facebook SDK в приложение

Код следующее:

import com.facebook.FacebookSdk; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
} 

ШАГ ТРЕТИЙ

Приложение Facebook ID вы получили при регистрации ваш приложение должно быть добавлено к вашему strings.xml.

<string name="facebook_app_id">123456908761030</string> 

, вы должны изменить ваши AndroidManifest.xml добавления ИНТЕРНЕТ uses-permission (чтобы иметь возможность подключаться к серверам Facebook,) и meta-data к Application элемента (для Facebook App ID).

<uses-permission android:name="android.permission.INTERNET"/> 

<application android:label="@string/app_name" ...> 
    ... 
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> 
    ... 
</application> 

ШАГ ЧЕТВЕРТЫЙ

Определение FacebookActivity как другая деятельность в манифесте. Если обрабатывает большинство изменений конфигурации, используя configChanges.

<activity android:name="com.facebook.FacebookActivity" 
      android:configChanges= 
       "keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
      android:theme="@android:style/Theme.Translucent.NoTitleBar" 
      android:label="@string/app_name" /> 

ШАГ ПЯТЫЙ

Создать/Добавить Войти Кнопка в макете XML (там, где вы хотите).

<com.facebook.login.widget.LoginButton 
     android:id="@+id/login_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 

ШАГ ШЕСТОЙ

В вашей деятельности, объявить виджет, определенный в макете, как поле класса.

private LoginButton loginButton; 

Объявите CallbackManager в другое поле для управления обратного вызова, используемый в приложении.

private CallbackManager callbackManager; 

Инициализировать ваш экземпляр CallbackManager.

callbackManager = CallbackManager.Factory.create(); 

Инициализировать виджет с помощью findViewById.

loginButton = (LoginButton) view.findViewById(R.id.usersettings_fragment_login_button); 

ПОСЛЕДНИЙ ШАГ

Создание обратного вызова для обработки результатов входа:

  • если попытка Войти успешно, onSuccess называется

  • если пользователь отменяет попытку входа в систему, onCancel называется

  • , если произошла ошибка, onError называется

Код:

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 
     // App code 
    } 

    @Override 
    public void onCancel() { 
     // App code 
    } 

    @Override 
    public void onError(FacebookException e) { 
     // App code 
    } 
}); 

Тогда в onActivityResult():

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

НЕКОТОРЫХ ССЫЛКИ

Учебник TutsPlus: LINK

App образец (slidenerd): LINK

Видео учебник (slidenerd): LINK

Получить вход Информация о пользователе: LINK

+0

Спасибо, брат. Извините за поздний ответ. :) – Kyizin

+0

Добро пожаловать. Не могли бы вы щелкнуть стрелкой «ВВЕРХ» рядом с ответом, пожалуйста? (если ответ был полезен) – eldivino87

+0

Да, я сделал это и принял ваш ответ. :) – Kyizin

0
  **Process Login With Facebook** 
     **Working on Play Store** 

    **Link 

- https://play.google.com/store/apps/details?id=com.codecube.airbucks&hl=en 

** 



      Registered your new app? If you didn't, go to https://developers.facebook.com/apps/, click Add a New App in the top right and follow the instructions. **step by step** 

      **Manifest Permission** 
      <uses-permission android:name="android.permission.INTERNET" /> 
       <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

      **build.Gradle Dependency** 
      compile 'com.facebook.android:facebook-android-sdk:4.8.0' // in airbuck 

       /*compile 'com.facebook.android:facebook-android-sdk:[4,5)'*/ 


      <activity android:name="com.facebook.FacebookActivity" 
         android:theme="@android:style/Theme.Translucent.NoTitleBar" 
         android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
         android:label="@string/app_name" /> 
        <meta-data android:name="com.facebook.sdk.ApplicationName" 
         android:value="@string/app_name" /> 
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> 

        <provider android:authorities="com.facebook.app.FacebookContentProvider1854328631556764" 
         android:name="com.facebook.FacebookContentProvider" 
         android:exported="true"/> 

     **Layout Xml Code** 
     <com.facebook.login.widget.LoginButton 
       android:id="@+id/login_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       /> 

     **Put own generate facebook Key in String.xml File** 
     <string name="facebook_app_id">1854328631556764</string> 
      <string name="fb_login_protocol_scheme">fb1854328631556764</string> 

      **MainActivity CODE** 
      protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main1); 
        FacebookSdk.sdkInitialize(this.getApplicationContext()); 
        AppEventsLogger.activateApp(this); 

        callbackManager = CallbackManager.Factory.create(); 
        fbloginButton = (LinearLayout) findViewById(R.id.facebook_button); 


        fbloginButton.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 

           if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
            int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this, 
              android.Manifest.permission.CAMERA); 
            if (permissionCheck == PackageManager.PERMISSION_GRANTED) { 
             //showing dialog to select image 
             callFacebook(); 
             Log.e("permission", "granted"); 
            } else { 
             ActivityCompat.requestPermissions(MainActivity.this, 
               new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE, 
                 android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.CAMERA}, 1); 
            } 
           } else { 
            callFacebook(); 
           } 
         } 
        }); 
       } 

      **CAllOnFAcebook** 
       public void callFacebook() { 

        callbackManager = CallbackManager.Factory.create(); 

      //  LoginManager.getInstance().logInWithReadPermissions(MainActivity2.this, Arrays.asList("email")); 

        LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile")); 

        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 

         @Override 
         public void onSuccess(LoginResult loginResult) { 
          Log.e("keshav","onSuccess called "); 
          GraphRequest request = GraphRequest.newMeRequest(
            loginResult.getAccessToken(), 
            new GraphRequest.GraphJSONObjectCallback() { 
             @Override 
             public void onCompleted(
               JSONObject object, 
               GraphResponse response) { 
              // Application code 
              Log.v("LoginActivityfacebook", response.toString()); 

              try { 
               JSONObject data = response.getJSONObject(); 
               facebookName = data.getString("name"); 
               facebookEmail = data.getString("email"); 
               facebookId = data.getString("id"); 
               facebookLink = data.getString("link"); 
               facebookLink = facebookLink.replace("https://www.facebook.com/app_scoped_user_id/", ""); 
               facebookLink = facebookLink.replace("/", ""); 
               Log.e("profilelink", "" + facebookLink); 
               facebookLink = "https://graph.facebook.com/" + facebookLink + "/picture"; 

               Log.e("facebookName", "is -> " + facebookName); 
               Log.e("facebookEmail", "is -> " + facebookEmail); 
               Log.e("facebookId", "is -> " + facebookId); 
               Log.e("facebookLink", "is -> " + facebookLink); 


                Log.e("Keshav","Suceesfully Login "+facebookName); 



               } else { 
                CommonMethod.showAlert("Intenet Connectivity Failure", MainActivity.this); 
               } 
              } catch (JSONException e) { 
               // TODO Auto-generated catch block 
               e.printStackTrace(); 
              } 
             } 
            }); 
          Bundle parameters = new Bundle(); 
          parameters.putString("fields", "id,name,email,gender, birthday,link"); 
          request.setParameters(parameters); 
          request.executeAsync(); 
         } 

         @Override 
         public void onCancel() { 
          // App code 
          Log.i(TAG, "cancelTriggered"); 
         } 

         @Override 
         public void onError(FacebookException exception) { 
          // App code 
          Log.i(TAG, "errorTriggered"); 
         } 
        }); 
        LoginManager.getInstance().logOut();    // TODO Add Me Using this previous facebook login id password logout 
       } 


      **Process Login With Facebook** 
     **Working on Play Store** 

    **Link https://play.google.com/store/apps/details?id=com.codecube.airbucks&hl=en** 
+0

** Процесс входа в систему с помощью Facebook ** ** Работа с PlayStore с разрешенным MarshMallow ** ** Ссылка https://play.google.com/store/apps/details?id=com. codecube.airbucks & hl = en ** –

+0

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