car*_*ton 7 java android facebook-android-sdk
我正在尝试使用facebook登录连接我的应用程序.我做了所有这些步骤,我面临一个奇怪的问题.所以登录按钮有效,因为facebook登录窗口出现但我没有获得facebook令牌(调用onError).
我已经尝试过本课题的所有解决方案.
此代码与Facebook教程中的代码相同.
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();
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的错误,与问题(额外: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)
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
在我的Build.gradle中,我添加了Facebook SDK
implementation 'com.facebook.android:facebook-login:[4,5)'
Run Code Online (Sandbox Code Playgroud)
活动:
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);
}
Run Code Online (Sandbox Code Playgroud)
}
有谁知道如何解决这个问题?
该问题可能是由于Facebook Developer Dashboard中的应用程序状态正在开发中引起的!
要上线,请在基本设置中添加隐私政策 URL,然后单击保存更改
编辑:将您的依赖项更改为
implementation 'com.facebook.android:facebook-android-sdk:4.34.0'
Run Code Online (Sandbox Code Playgroud)
并创建 Application 类,如下所示
import android.app.Application;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
}
}
Run Code Online (Sandbox Code Playgroud)
不要忘记在清单中声明它android:name=".MyApplication"
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |