gpt4 book ai didi

react-native - 使用 react-native-fbsdk LoginManager 时如何设置 LoginBehaviour?

转载 作者:行者123 更新时间:2023-12-04 04:49:11 32 4
gpt4 key购买 nike

如果我使用 react-native-fbsdk 中的 LoginButton,LoginBehaviour 似乎是“本地的”,因为 SDK 与已安装的 FB 应用程序进行通信,看到我已经授予权限并且只是让我登录而不显示任何对话框等。

当我使用 LoginManger.logInWithPublishPermissions() 机制时,我总是被带到浏览器和一个屏幕,上面写着我已经为我的应用程序授予了权限。我假设我可以通过设置登录行为来改变这一点,但我不知道如何成功地做到这一点。这是我尝试过的

import { GraphRequest, GraphRequestManager, LoginManager, LoginBehaviorIOS } from 'react-native-fbsdk';
LoginManager.setLoginBehavior(LoginBehaviorIOS);

//ERROR: Argument 0 (FBSDKLoginBehaviour) of FBLoginManager: must not be null

然后我尝试了这个:
LoginManager.setLoginBehavior('native');

// No error, but still gives me the same behaviour.

LoginButton 和 LoginManager 什么时候表现不同?使用 LoginManager 时如何设置登录行为,使其像 LoginButton 一样工作?

我已将所有代码添加到 AppDelegate.m 文件以及入门指南中包含的所有其他说明: https://developers.facebook.com/docs/ios/getting-started/

最佳答案

我有一个类似的问题,并设法通过如下设置登录行为使其工作:

LoginManager.setLoginBehavior('NATIVE_ONLY'); 

即使在 react-native-fbsdk GitHub 中,Facebook 文档也很差 repo关于这个主题:(

编辑:
使用 natie_only 行为有一个问题。用户必须在此手机上安装 FB,否则 FB SDK 会静默失败。为了解决这个问题,我决定启动 WEB_ONLY 行为,以防 native_only 失败。我的示例针对 Android 进行了测试,尚未针对 iOS 进行测试。
let result;
try {
LoginManager.setLoginBehavior('NATIVE_ONLY');
result = await LoginManager.logInWithReadPermissions(['public_profile', 'email']);
} catch (error) {
LoginManager.setLoginBehavior('WEB_ONLY');
result = await LoginManager.logInWithReadPermissions(['public_profile', 'email']);
}

编辑 编辑 :
我在 how to use Facebook SDK in React Native 上发表了一篇文章在那里我提到了更多的东西(即如何执行图形请求)。如果您需要有关该主题的更多信息,请查看它。

关于react-native - 使用 react-native-fbsdk LoginManager 时如何设置 LoginBehaviour?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39835006/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com