Flutter Facebook Auth

本文最后更新于:2025年1月2日 晚上

使用插件:flutter_facebook_auth
文档地址:https://facebook.meedu.app/

首先声明,插件和文档的操作步骤是没有问题的,但是最后我们并没有使用facebook的登录,因为facebook的企业审核需要提供企业最近的水电缴费单或者税务账单以证明公司实际办公地址的真实性,这个我们提供不了,哈哈,所以此文档就仅供参考了。

1. 账号

首先你要有一个facebook的账号(之前用google的企业邮箱注册的好几个账号都被禁了,用gmail邮箱注册的是可以用的,不明所以),然后用这个账号在facebook开发者网站注册一个应用:

Use cases 这一栏选择使用facebook 登录:

然后一步步完成;

2. 配置项目

最后来到应用配置界面:

第一步的定制登录按钮里面需要获取邮箱的就需要加上:

你可以先把APP setting里面的基本信息补充完整一下,隐私协议、服务条款、icon等等。

配置Android:

然后再快速启动中配置android和ios项目,这这里配置其实和在开发文档中配置是一样的

在android的第三步设置包名和启动Activity

第四步是设置秘钥,人家平台都是要sha1,它要的好像是sha1的base64 key hashes,debug和release都需要,这个在项目setting的basic下新建platform填写,有个生成的命令:

1
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64

然后来到第六步,配置Flutter项目了,一共需要三个值:

facebook_app_id
fb_login_protocol_scheme 
facebook_client_token 

app_id信息在 App setting > basic 里面;
scheme是字符串拼接:fb[app_id];
client_token 在 App setting > advanced > security里面;

修改文件:
/android/app/src/main/res/values/strings.xml文件中添加三个参数:

1
2
3
<string name="facebook_app_id">1234</string>
<string name="fb_login_protocol_scheme">fb1234</string>
<string name="facebook_client_token">56789</string>

/android/app/src/main/AndroidManifest.xml文件中增加两个meta-data和一个权限:

1
2
3
4
5
6
7
8
<application android:label="@string/app_name" ...>
...
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
...
</application>

<uses-permission android:name="android.permission.INTERNET"/>

额滴个神啊,终于把Android配置完了。

配置IOS:

ios简单多了,第二步配置Bundle ID:

第四步配置Info.plist文件我就不写了,参数就还是那几个,注意别写错位置了,另外有些部分和googleSignin的配置有重叠,小心点就行了,配置完这个,ios端就行了。

最后添加一个测试账号:

3. 使用插件

1
2
3
4
5
6
7
8
9
10
11
void facebookLogin() async {
final LoginResult result = await FacebookAuth.instance.login();
if (result.status == LoginStatus.success) {
final AccessToken accessToken = result.accessToken!;
print(accessToken);
print(result);
} else {
print(result.status);
print(result.message);
}
}

4. 遇到的问题

账号问题:

2023-09-21搞了一天也没好,最后发现是这个facebook账号被禁用了广告功能,不能创建商业账号,而使用用户email这些数据是需要验证商业账号的,之前为什么不用验证呢,因为新政策是刚出的20231027之后针对新注册app生效的新政策,靠!这里是新政策公告

我进行公司信息验证之后,状态就变了,现在还在审核中,公司审核需要提供公司的营业执照或者税务什么的文件,还需要有一个当地的电话号码(暂时不需要验证码)

按照最新的政策,必须公司验证通过,才能正常使用登录功能!!!

几天之后,公司验证没通过!还需要追加提供企业最近的水电缴费单或者税务账单以证明公司实际办公地址的真实性,这个我们提供不了,哦吼,完犊子,只能不用facebook auth了。


Flutter Facebook Auth
http://bestkele.com/2023/09/23/flutter/flutter-facebookAuth/
作者
kele
发布于
2023年9月23日
许可协议