一、导入依赖项
1、添加Facebook SDK为构建依赖项
设置支持的最低SDK版本,选择API 15:Android 4.0.3或者更高的版本
在build.gradl(Project:<your_project>)文件中buildscript中的repositories部分添加mavenCentral()
buildscript {
repositories {
//在这里添加
mavenCentral()
}
在build.grade (Module:app)文件中的 dependece 部分中添加
implementation 'com.facebook.android:facebook-android-sdk:latest.release'
构建项目 即可把 com.facebook.FacebookSdk 导入应用
二、接入配置
1、新建string.xml资源文件
在src/res/values目录下新建strings.xml文件,
将自己注册的应用的信息
应用名(app_name)、AppID(facebook_app_id)、客户端令牌(facebook_client_token)
添加至文件中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MyAppName</string>
<string name="facebook_app_id">123456</string>
<string name="facebook_client_token">MyAppClientToken</string>
<string name="fb_login_protocol_scheme">fb123456</string>
</resources>
2、在AndroidManifest.xml配置FacebookSDK初始化设置
打开 AndroidManifest.xml文件
在<application> </application>标签中写入facebook相关配置
<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"/>
<meta-data android:name="com.facebook.sdk.ApplicationName" android:value="@string/app_name" />
<meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled" android:value="true"/>
<meta-data android:name="com.facebook.sdk.AutoInitEnabled" android:value="true"/>
<meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled" android:value="true"/>
AutoLogAppEventsEnabled 为是否启用FacebookSDK自动记录应用事件
AutoInitEnabled为FacebookSDK是否自动进行初始化
注:这里要通过@string/(数据字段) 去string.xml取,直接填的话要加fb,否则会出现FbSDK初始化无法识别数据的情况
然后在<application> </application>标签后添加
<uses-permission android:name="android.permission.INTERNET"/>
注:如果后续调试 logcat出现如下报错时
Failed to find provider info for com.facebook.katana.provider.XXX
Apps that target Android API 30+ (Android 11+) cannot call Facebook native apps unless the package visibility needs are declared
在<application> </application>标签前面加
<queries>
<provider android:authorities="com.facebook.katana.provider.XXXX"/>
</queries>
如继续报该错误,可尝试打开Facebook并登陆,再启动应用。
三、FacebookSDK事件机制:
1、自动记录事件
Facebook数据后台的事件,会在 FacebookSDK 初始化后自动进行记录(例如:应用安装)
注:前提是设置了 AutoLogAppEventsEnabled= true
2、手动记录
可创建AppEventsLogger对象辅助记录,this是方法坐在的Activity
AppEventsLogger logger = AppEventsLogger.newLogger(this);
然后就可以用来记录事件
logger.logEvent(AppEventsConstants.EVENT_NAME_X);
四、调试
调试记录,记录客户的应用事件使用情况,以及详细的请求和JSON响应,
在初始化Facebook SDK完毕后 在java中添加一下代码
FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
查到自己想要记录的事件的事件名(_eventName)以及Result:Succee,则代表完成
注:正式包一定要关闭调试记录!!!
五、发布
软件包名称为 AndroidManifest.xml 中的package
类名为main/java文件夹中的.java文件的名字
散列密钥生成:
注:上传新版本时如果遇到
修改项目中的 versionName 字段即可
六、相关文档
Facebook SDK接入
https://developers.facebook.com/docs/android/getting-started
Facebook SDK事件记录
https://developers.facebook.com/docs/app-events/getting-started-app-events-android
后续可能会遇到的问题
FacebookSDK接入的那些坑_龙爷linux的博客-CSDN博客
https://developers.facebook.com/docs/android/troubleshooting/#faq_267321845055988