1.后台配置
在后台需要配置3个内容:包名、默认活动类、密钥散列
2.导入 Android 版 Facebook SDK
在build.gradle的buildscript { repositories { } }中添加mavenCentral()
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
}
}
在depenemcies{}中添加 implementation 'com.facebook.android:facebook-android-sdk:[4,5)
dependencies {
api fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
// facebook
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
}
3.添加 Facebook 应用编号
配置app/res/values/strings.xml 文件。在文件中添加facebook_app_id
、fb_login_protocol_scheme、facebook_client_token元素。
例如,如果您的应用编号为 1234
,并且客户端口令为 56789
,则您的代码格式如下所示
<string name="facebook_app_id">1234</string>
<string name="fb_login_protocol_scheme">fb1234</string>
<string name="facebook_client_token">56789</string>
配置 /app/manifest/AndroidManifest.xml,将 meta-data
元素添加到应用编号和客户端口令的 application
元素中。代码如下所示
<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>
在 application
元素中,为 Facebook 添加活动,并为 Chrome 自定义选项卡添加活动和意图筛选条件,代码如下所示
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
注意:需要访问网络的权限
<uses-permission android:name="android.permission.INTERNET"/>
4.提供您的 Android 项目信息
在后台配置包名、默认活动类
5.添加开发和发布密钥散列
下载 openssl工具,并添加到环境变量中。openssl-0.9.8-for-windows-其他文档类资源-CSDN下载接入Facebook时需要在后台配置密钥散列,按照文档给的命令含有openssl命令,下载之后选择x更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/u012080441/86280665 cmd中到keystore所在目录
keytool -exportcert -alias 别名 -keystore 名字 | openssl sha1 -binary | openssl base64
得到一个长度为28的字符串,配置在后台或者交给发行人员即可。
6.记录应用事件
自定义的事件。需要引入包有2个。
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
...
...
AppEventsLogger logger = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 激活应用事件
AppEventsLogger.activateApp(this);
logger = AppEventsLogger.newLogger(this);
}
@Override
public void onDestroy() {
super.onDestroy();
// 关闭应用事件
AppEventsLogger.deactivateApp(this);
}
...
...
public void logEventSend(String eventName) {
logger.logEvent(eventName);
}
public void logEventSend(String eventName, double valueToSum) {
logger.logEvent(eventName, valueToSum);
}
public void logEventSend(String eventName, Bundle parameters) {
logger.logEvent(eventName, parameters);
}
7.验证应用事件
在后台查看事件数据。
在编译中如果有报错找不到 implementation 'com.facebook.android:facebook-android-sdk:[4,5)' 请检查是否正确添加 mavenCentral()
2022.8.8
activeApp接口推荐使用 activeApp(Application application),使用该接口之后无需调用deactivateApp接口。