更新记录
1.1.0(2026-07-08)
- 新增 iOS 原生 Facebook Login SDK 登录实现,使用
FBSDKCoreKit与FBSDKLoginKit。 - 新增 iOS Pod 依赖配置和 Info.plist 占位模板,宿主 App 需要替换
FacebookAppID、FacebookClientToken、FacebookDisplayName和fb{AppID}URL Scheme。 - 新增 iOS URL 回调 Hook,用于处理 Facebook SDK 授权完成后的 App 回跳。
- 更新平台支持标记,
App-Android与App-iOS均支持原生登录。
1.0.1(2026-07-08)
- 完善接入文档,明确需要准备
Facebook App ID、Facebook 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 授权登录。
- 返回
accessToken与userID,便于宿主 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 | 支持 | 使用 FBSDKCoreKit、FBSDKLoginKit 18.0.3 |
| Web / 小程序 | 不支持 | 可自行使用 Facebook OAuth 网页授权 |
安装
将插件目录放入项目:
uni_modules/facebook-login
Android 必配项
- 到 Meta for Developers 创建应用,开启 Facebook Login。
- 在 Facebook 后台配置 Android 包名、Class Name、Key Hash。
- 修改插件内 AndroidManifest 的回调 scheme:
<data android:scheme="fb你的FacebookAppID" />
例如 Facebook App ID 是 123456789012345,则 scheme 是 fb123456789012345。
Facebook 原生 SDK 登录不需要在 App 里配置 App Secret,也不要把 App Secret、服务端密钥写进插件或 demo。
iOS 必配项
- 到 Meta for Developers 创建应用,开启 Facebook Login。
- 在 Facebook 后台配置 iOS Bundle ID。
- 修改插件内 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 |
保留 fbapi、fbauth2 等 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.html 的 APP_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。
原生登录流程
- 宿主 App 在 Meta 后台配置平台信息:Android 配包名、Class Name、Key Hash;iOS 配 Bundle ID。
- 宿主 App 配置
fb{Facebook App ID}回调 Scheme:Android 修改插件 AndroidManifest;iOS 修改插件 Info.plist。 - 页面调用
getFacebookLogin().login({ appId, clientToken, permissions })。 - 插件初始化 Facebook SDK,并调用 Facebook Login SDK 打开授权页。
- 用户授权成功后,Facebook SDK 通过
fb{AppID}scheme 把结果返回 App。 - 插件返回
accessToken和userID。 - 业务侧把
accessToken提交到自己的服务端。 - 服务端调用 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_profile、email |
| 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 登录失败 |

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 158
赞赏 0
下载 12522372
赞赏 1943
赞赏
京公网安备:11010802035340号