更新记录

1.1.0(2026-07-08)

  • 新增 iOS 原生 Facebook Login SDK 登录实现,使用 FBSDKCoreKitFBSDKLoginKit
  • 新增 iOS Pod 依赖配置和 Info.plist 占位模板,宿主 App 需要替换 FacebookAppIDFacebookClientTokenFacebookDisplayNamefb{AppID} URL Scheme。
  • 新增 iOS URL 回调 Hook,用于处理 Facebook SDK 授权完成后的 App 回跳。
  • 更新平台支持标记,App-AndroidApp-iOS 均支持原生登录。

1.0.1(2026-07-08)

  • 完善接入文档,明确需要准备 Facebook App IDFacebook Client Token、Android 包名、Class Name、Key Hash、fb{AppID} 回调 Scheme 和 permissions。
  • 补充原生登录完整流程说明:App 调用 Facebook SDK、获取 accessToken/userID、提交服务端校验并换取业务登录态。
  • 补充 H5 OAuth 回调页模板说明,明确该页面只用于 HTTPS OAuth 中转场景,不替代 Facebook Android SDK 的 fb{AppID} 回调 Scheme。
  • 调整 demo 说明,测试参数仅允许写在示例页面中;插件包内 AndroidManifest 保持 fb0000000000000000 占位值,上传插件前不要写入业务 App ID 或密钥。

1.0.0(2026-07-06)

  • 新增 Android Facebook Login SDK 授权登录。
  • 返回 accessTokenuserID,便于宿主 App 提交到业务服务端校验。
  • 新增 demo 页面、接入说明和登录流程文档。
查看更多

平台兼容性

uni-app(4.76)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × 6.0 ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.76)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × 6.0 × ×

facebook-login

facebook-login 是一个 uni-app x UTS 插件,用于在 Android / iOS App 中调用 Facebook Login SDK 获取授权结果。

平台支持

平台 支持情况 说明
App-Android 支持 使用 com.facebook.android:facebook-login:18.3.0
App-iOS 支持 使用 FBSDKCoreKitFBSDKLoginKit 18.0.3
Web / 小程序 不支持 可自行使用 Facebook OAuth 网页授权

安装

将插件目录放入项目:

uni_modules/facebook-login

Android 必配项

  1. 到 Meta for Developers 创建应用,开启 Facebook Login。
  2. 在 Facebook 后台配置 Android 包名、Class Name、Key Hash。
  3. 修改插件内 AndroidManifest 的回调 scheme:
<data android:scheme="fb你的FacebookAppID" />

例如 Facebook App ID 是 123456789012345,则 scheme 是 fb123456789012345

Facebook 原生 SDK 登录不需要在 App 里配置 App Secret,也不要把 App Secret、服务端密钥写进插件或 demo。

iOS 必配项

  1. 到 Meta for Developers 创建应用,开启 Facebook Login。
  2. 在 Facebook 后台配置 iOS Bundle ID。
  3. 修改插件内 iOS Info.plist 占位值:
uni_modules/facebook-login/utssdk/app-ios/Info.plist

需要替换:

配置 说明
FacebookAppID Facebook App ID
FacebookClientToken Facebook Client Token
FacebookDisplayName 宿主 App 展示名称
CFBundleURLSchemes fb + Facebook App ID,例如 fb123456789012345
LSApplicationQueriesSchemes 保留 fbapifbauth2 等 Facebook SDK 查询 scheme

iOS 也需要回调 Scheme 严格等于 fb{Facebook App ID}。如果 URL Scheme 配错,授权完成后不能正常回到 App。

接入前需要提供的参数

参数 来源 用途 填写位置
Facebook App ID Meta for Developers 应用后台 初始化 Facebook SDK、生成 fb{AppID} 回调 scheme login({ appId }),demo 中的 FACEBOOK_APP_ID
Facebook Client Token Meta for Developers 应用后台 初始化 Facebook SDK login({ clientToken }),demo 中的 FACEBOOK_CLIENT_TOKEN
Android Package Name 宿主 App 的真实 Android 包名 Meta 后台识别 Android 应用 Meta 后台 Android 平台配置;demo 默认 com.zhuanz.facebooklogin.debug
Android Class Name 宿主 App 主 Activity Meta 后台 Android 平台配置 通常填写 io.dcloud.uniapp.UniAppActivity,以实际打包 Activity 为准
Android Key Hash 当前签名证书生成 Meta 后台校验应用签名 Meta 后台 Android 平台配置;自定义基座和正式包签名不同则都要配置
iOS Bundle ID 宿主 App 的真实 iOS Bundle ID Meta 后台识别 iOS 应用 Meta 后台 iOS 平台配置
回调 Scheme fb + Facebook App ID Facebook 授权后回到 App Android 写入 utssdk/app-android/AndroidManifest.xml;iOS 写入 utssdk/app-ios/Info.plist
H5 回调页 App Scheme 宿主 App 自定义 HTTPS OAuth 回调页唤回 App static/h5/oauth-callback.htmlAPP_SCHEME,demo 默认 facebooklogindemo
permissions 业务需要的 Facebook 授权范围 控制用户授权范围 login({ permissions }),默认 ['public_profile', 'email']
App Secret Meta for Developers 应用后台 服务端校验 token 时可能用到 不要放在 App 或插件内,只能放服务端

最容易出错的是回调 Scheme。它必须严格等于 fb{Facebook App ID},例如 App ID 为 123456789012345 时填写 fb123456789012345。如果 scheme、包名或 Key Hash 不一致,授权页可能能打开,但结果不会正常回到 App。

原生登录流程

  1. 宿主 App 在 Meta 后台配置平台信息:Android 配包名、Class Name、Key Hash;iOS 配 Bundle ID。
  2. 宿主 App 配置 fb{Facebook App ID} 回调 Scheme:Android 修改插件 AndroidManifest;iOS 修改插件 Info.plist。
  3. 页面调用 getFacebookLogin().login({ appId, clientToken, permissions })
  4. 插件初始化 Facebook SDK,并调用 Facebook Login SDK 打开授权页。
  5. 用户授权成功后,Facebook SDK 通过 fb{AppID} scheme 把结果返回 App。
  6. 插件返回 accessTokenuserID
  7. 业务侧把 accessToken 提交到自己的服务端。
  8. 服务端调用 Facebook Graph API 校验 token、获取用户信息,并换取业务系统自己的登录态。

客户端只负责拿 Facebook 授权结果,不建议在客户端直接完成业务登录信任闭环。

H5 OAuth 回调页

插件内带有从源 App 回调页移植并去品牌化后的模板:

static/h5/oauth-callback.html

demo 根目录也放了一份:

static/h5/oauth-callback.html

这个页面用于 HTTPS Redirect URI -> App Scheme 的场景,例如网页 OAuth 回调后再打开 App。它是可选模板,主要用于你额外做 Web OAuth 或需要 HTTPS 中转页的场景;普通 Android / iOS 原生 Facebook SDK 登录只需要配置 fb{AppID}

部署前需要替换:

参数 说明
APP_SCHEME 宿主 App 自定义 scheme,demo 为 facebooklogindemo
APP_PACKAGE_NAME Android 包名
APP_ACTIVITY_NAME Android 主 Activity
APP_DISPLAY_NAME 页面显示名称

注意:H5 回调页不替代 Facebook 原生 SDK 的 fb{FacebookAppID} 回调 scheme。原生 Facebook Login SDK 仍必须按上文配置 fb{AppID}

调用示例

import { getFacebookLogin, FacebookLoginSuccess, FacebookLoginFail } from '@/uni_modules/facebook-login'

getFacebookLogin().login({
  appId: '你的 Facebook App ID',
  clientToken: '你的 Facebook Client Token',
  permissions: ['public_profile', 'email'],
  success: (result: FacebookLoginSuccess) => {
    console.log('accessToken=' + result.accessToken)
    console.log('userID=' + result.userID)
    // 建议把 accessToken 提交给业务服务端校验并换取自己的登录态。
  },
  fail: (error: FacebookLoginFail) => {
    console.log(error.errCode.toString() + ':' + error.errMsg)
  },
  complete: null
})

API

getFacebookLogin().login(options)

参数 类型 必填 说明
appId string Facebook App ID
clientToken string Facebook Client Token
permissions string[] 默认 public_profileemail
success callback 登录成功回调
fail callback 登录失败回调
complete callback 完成回调

getFacebookLogin().logout()

清理 Facebook SDK 当前登录态。

返回结果

type FacebookLoginSuccess = {
  accessToken: string,
  userID: string | null
}

错误码

errCode 说明
101 系统环境异常
102 Facebook App ID 未配置
103 Facebook Client Token 未配置
106 用户取消登录
108 登录结果为空
109 access token 为空
901 当前平台不支持
999 Facebook 登录失败

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android 需要 INTERNET 权限;Android/iOS 均需要按文档配置 fb{FacebookAppID} 回调 scheme。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件本身不采集、不存储、不上传用户数据,仅把 Facebook SDK 授权结果返回给宿主应用。宿主应用如将 accessToken、userID 提交到业务服务器,应在自身隐私政策中说明。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。