我有一个使用 Facebook 登录的应用程序,已经在 facebook 中使用 SHA 定义了哈希。
应用程序昨天运行良好,但突然停止运行,我什至将代码恢复到以前的功能版本,但没有任何变化。
每次我尝试登录时都会看到一个正在加载的微调器,它在一秒钟后就消失了,什么也没有发生,我在日志上没有任何错误,所以我不知道发生了什么。
我的登录按钮在一个 fragment 中,我正在使用这段代码来管理它
public class TourFragmentFacebook extends Fragment {
CallbackManager callbackManager;
View v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_facebook , container, false);
FacebookSdk.sdkInitialize(v.getContext());
LoginButton loginButton = (LoginButton) v.findViewById(R.id.login_button);
loginButton.setFragment(this);
loginButton.setReadPermissions(Arrays.asList("public_profile"));
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d("app", "success");
}
@Override
public void onCancel() {
// App code
Log.d("app", "cancel");
}
@Override
public void onError(FacebookException exception) {
// App code
Log.d("app", "error");
}
});
return v;
}
public static TourFragmentFacebook newInstance(String text) {
TourFragmentFacebook f = new TourFragmentFacebook ();
Bundle b = new Bundle();
b.putString("msg", text);
f.setArguments(b);
return f;
}}
最佳答案
我找到了答案,希望对其他人有用
缺少 onActivityResult 方法,因此无法触发 facebook 事件,我只添加了这段代码,现在一切正常
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
关于android - Facebook 登录不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29962823/