configurações build.gradle
android {
defaultConfig {
minSdkVersion 15
}
buildTypes {
release {
minifyEnabled false
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
}
Configurações do Manifest
<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" />
Bat para gerar o Hash da aplicação
set keytool="C:\Program Files\Java\jre1.8.0_65\bin\keytool.exe" set androiddebugkey="RCKhubert" set keystore="D:\PROJECTS\BlueCore\AndroidStudio\Hubert2\keystore.jks" set openssl="D:\INSTALL\DEVELOPMENT\openssl\bin\openssl.exe" %keytool% -exportcert -alias %androiddebugkey% -keystore %keystore% | %openssl% sha1 -binary | %openssl% base64 pause
rem exemplo de retorno: uL9sAoiydN/7TsC1wSqz3OVSsQs=
Código Java
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
InicializeFacebook();
setContentView(R.layout.main_activity);
LoginFacebook(); // ou no button click
}
public void InicializeFacebook(){
try {
PackageInfo info = getPackageManager().getPackageInfo(
"it.bluecore.hubert2",
PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toString().getBytes());
String hash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.d("KeyHash:", hash);
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
FacebookSdk.sdkInitialize(this.getApplicationContext());
}
public void LoginFacebook(){
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
//loginResult.getAccessToken().getUserId();
//loginResult.getAccessToken().getToken();
}
@Override
public void onCancel() {
// App code
Toast.makeText(MainActivity.this, "Cancelado!", Toast.LENGTH_LONG).show();
}
@Override
public void onError(FacebookException exception) {
// App code
Toast.makeText(MainActivity.this, exception.getMessage(), Toast.LENGTH_LONG).show();
}
});
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onResume() {
super.onResume();
AppEventsLogger.activateApp(this);
}
@Override
protected void onPause() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver);
super.onPause();
AppEventsLogger.deactivateApp(this);
}