首页 > 解决方案 > react-native-fbsdk 不支持redirect_uri URL

问题描述

我正在尝试使用 react-native-fbsdk 来允许用户登录我的应用程序。我已经设置了一个登录按钮。

代码:

import React, { Component } from 'react'
import { View } from 'react-native'
import { LoginButton, AccessToken } from 'react-native-fbsdk'

export default class FBLoginButton extends Component {
  render() {
    return (
      <View>
        <LoginButton
          onLoginFinished={
            (error, result) => {
              if (error) {
                alert('Login failed with error: ' + error.message)
              } else if (result.isCancelled) {
                alert('Login was cancelled')
              } else {
                AccessToken.getCurrentAccessToken().then(
                    (data) => {
                      console.log(data.accessToken.toString())
                    }
                  )
              }
            }
          }
          onLogoutFinished={() => alert('User logged out')}/>
      </View>
    )
  }
}

当我单击登录按钮时,我会在模拟器中出现这个

在此处输入图像描述

如果我尝试添加权限,我会收到一个 xcode 错误:

代码:

<LoginButton
          publishPermissions={['email']}
          onLoginFinished={...

错误:线程 1:信号 SIGABRT

如何摆脱 redirect_uri 错误?

标签: react-nativereact-native-iosreact-native-fbsdk

解决方案


我错了FacebookAppIdCFBundleURLSchemesinfo.plist我的ios/appName/info.plist. 我不得不去https://developers.facebook.com/apps/29476792337468632/fb-login/quickstart/?sdk=fbsdk看看 APP ID 是什么(它显示在您的应用名称旁边的导航栏中) . 快速入门实际上会为您提供下面的整个代码块以及您要粘贴到 info.plist 中的正确应用程序 ID。

<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>fb29476792337468632</string>
  </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>29476792337468632</string>
<key>FacebookDisplayName</key>
<string>My App Name</string>

推荐阅读