Tôi đang cố gắng triển khai đăng nhập facebook đơn giản trên ứng dụng Android của mình. Khi tôi nhấp vào nút đăng nhập, ứng dụng được chuyển hướng đến trang facebook, sau khi nhập thông tin đăng nhập, nó lại được trả về ứng dụng của tôi. Nhưng các hàm callbacks LoginButton không được gọi. Mặc dù có một số câu hỏi tương tự như vậy, nhưng họ có một lớp phân đoạn riêng biệt. Tuy nhiên, tôi đang làm mọi thứ từ Hoạt động chính. Sau đây là mã của tôi:Facebook LoginButton callback không được gọi là
package com.example.ankur.facebookdemo;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;
public class MainActivity extends AppCompatActivity {
private LoginButton loginButton;
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_main);
loginButton = (LoginButton) findViewById(R.id.login_button);
if (loginButton == null) {
Log.v("CheckLogin", "null");
}
else {
Log.v("CheckLogin", "not null");
}
loginButton.setReadPermissions("user_friends");
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
Toast.makeText(getApplicationContext(),"Fb Login Success", Toast.LENGTH_LONG);
Log.v("CheckLogin", "successfully connected to facebook");
}
@Override
public void onCancel() {
// App code
Toast.makeText(getApplicationContext(),"Fb on cancel",Toast.LENGTH_LONG);
Log.v("CheckLogin", " connection to facebook cancelled");
}
@Override
public void onError(FacebookException exception) {
// App code
Toast.makeText(getApplicationContext(),"Fb Login Error",Toast.LENGTH_LONG);
Log.v("CheckLogin", "Error on connection to facebook");
}
});
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
với những gì xây dựng sự phụ thuộc của SDK của FB ?? exmpl: facebookSDK = 'com.facebook.android:facebook-android-sdk:4.6.0' –