Facebook登录sdk - Android [英] Facebook login 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.
- 此错误示例仅在您正在开发的应用程序中出现。按照 链接 进行操作,然后选择您的应用。那你可以在这做两件事。在角色选项卡中,您可以仅允许登录您的朋友,或者选择应用评论并将您的应用设为公开,然后任何人都可以登录。还可以刷新您的代币。
转到您的面板并选择管理员门户。
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屋!