[英]Facebook.logInWithReadPermissionsAsync from `expo-facebook` fails on Android with error `An error occurred while trying to log in to Facebook`
我有一个 redux thunk 操作,用于在我正在处理的应用程序中使用 Facebook 登录。 动作如下所示:
export const loginFB = createAsyncThunk('loginFB', async (_, thunkApi) => {
await Facebook.initializeAsync({ appId: 'aaa', appName: 'bbb' });
const FBResponse = await Facebook.logInWithReadPermissionsAsync({ permissions: ['public_profile'] });
if (FBResponse.type === 'success') {
// Login in backend. Not really relevant
}
});
这在 iOS 上完美运行,并且在 Android 上运行良好很长一段时间(我认为从 2021 年 9 月开始)。 我不知道它是什么时候发生的,但它最近停止在 Android 上工作。 我收到的错误消息如下所示:
An error occurred while trying to log in to Facebook
at node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:104:50 in promiseMethodWrapper
at node_modules/expo-modules-core/build/NativeModulesProxy.native.js:27:27 in moduleName.methodInfo.name
at node_modules/expo-facebook/build/Facebook.js:69:36 in logInWithReadPermissionsAsync
at node_modules/expo-facebook/build/Facebook.js:64:7 in logInWithReadPermissionsAsync
at src/screens/LoginScreen.tsx:151:41 in FacebookButton.props.onPress
- ... 16 more stack frames from framework internals
如果 Facebook 应用程序安装在 Android 设备上,则 Facebook 加载模式会在消失之前短暂出现。 如果未安装,则会弹出此消息: Facebook 错误截图
我已按照文档中的每一步操作,并从用于签署应用程序的 Play 管理中心添加了Upload key certificate
和App signing key certificate
的哈希值。 Facebook开发者Android平台配置如下: Facebook开发者截图。
除了app.json
的这个添加之外,该代码自工作以来一直没有被触及:
{
"expo": {
...
"plugins": [
[
"expo-facebook",
{
"userTrackingPermission": false
}
]
],
...
}
}
我尝试删除此添加,但发生相同的错误。
使用 Expo 44.0.5
和 expo-facebook 版本12.1.0
我真的不知道如何解决这个问题了,请帮助
我也有同样的问题,谁能帮忙?
我在使用与您使用的完全相同的版本时遇到了同样的问题。
我修复它 atm 的方法是更改 Android 的行为,所以当我初始化Facebook.initializeAsync
而不是传递 object 时,我只是发送appId
参数。
所以它看起来像这样:
let options = null;
if (Platform.OS === 'android') {
options = '<APP_ID>';
}
else {
options = {
appId: '<APP_ID>',
version: 'v9.0',
appName: '<APP_NAME>',
};
}
await Facebook.initializeAsync(options);
希望这也适用于你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.