Facebook登录sdk - Android [英] Facebook login sdk - Android

查看:298
本文介绍了Facebook登录sdk - Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用facebook登录连接我的应用程序。我做了所有这些步骤,我面临一个奇怪的问题。
所以登录按钮有效,因为facebook登录窗口出现但我没有获得facebook令牌(onError被调用)。

I am trying to connect on my app with the facebook login. I did all these steps and I am facing a strange issue. So the login button works because the facebook login window appears but I am not getting the facebook token (onError is called).

我已经尝试了所有的解决方案来自问题

I already tried all the solutions from this Questions.

此代码与Facebook教程中的代码相同。

This code is the same as the one in the Facebook tutorial.

mCallbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = findViewById(R.id.login_button);
    loginButton.setReadPermissions("email");
    loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.d(TAG, "facebook:onSuccess:" + loginResult);
        }

        @Override
        public void onCancel() {
            Log.d(TAG, "facebook:onCancel");
        }

        @Override
        public void onError(FacebookException error) {
            Log.d(TAG, "facebook:onError", error);
            error.printStackTrace();
        }
    });

这是我的错误,与问题(额外:null):

This is my error which is a bit different from the Questions (extra: null):

09-12 21:13:40.317 29573-29573/com.xxxx.yyyy D/FACEBOOK: facebook:onError
SERVER_ERROR: [code] 1675030 [message]: Error performing query. [extra]: null
    at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:219)
    at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:174)
    at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:92)

AndroidManifest。 xml

AndroidManifest.xml

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

    <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
    <activity
        android:name="com.facebook.CustomTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>

在我的Build.gradle中,我添加了Facebook SDK

In my Build.gradle I added the Facebook SDK

    implementation 'com.facebook.android:facebook-login:[4,5)'

活动:

public class Home extends AppCompatActivity {

private CallbackManager mCallbackManager;
private static final String TAG = "FACEBOOK";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    mCallbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = findViewById(R.id.login_button);
    loginButton.setReadPermissions(Arrays.asList("public_profile", "email"));
    loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.d(TAG, "facebook:onSuccess:" + loginResult);
        }

        @Override
        public void onCancel() {
            Log.d(TAG, "facebook:onCancel");
        }

        @Override
        public void onError(FacebookException error) {
            Log.d(TAG, "facebook:onError", error);
            error.printStackTrace();
        }
    });


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

}

有谁知道如何解决这个问题?

Does anyone know how to solve this problem?

推荐答案

应该做两件事来避免这些问题。

Two things should be done to avoid these problems.


  1. 此错误示例仅在您正在开发的应用程序中出现。按照 链接 进行操作,然后选择您的应用。那你可以在这做两件事。在角色选项卡中,您可以仅允许登录您的朋友,或者选择应用评论并将您的应用设为公开,然后任何人都可以登录。还可以刷新您的代币。

转到您的面板并选择管理员门户。
Step1
并将测试仪添加到您的项目中。 Step2

Go to your panel and select Admin Portal. Step1 and Add tester to your Project.Step2

和还

不正确

loginButton.setReadPermissions(Arrays.asList("public_profile", "email"));

正确

loginButton.setReadPermissions(email,public_profile,user_friends);

这篇关于Facebook登录sdk - Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆