最近在项目中需要接入facebook的应用事件也就是国内友盟,顺便记录一下

应用事件是 Android 版 Facebook SDK 的一项功能,您可以使用该功能追踪应用或网站内的操作。通过追踪这些操作或事件,您可以对广告投放进行定位、衡量和优化,将您的广告投放给最有可能采取操作的人群。本指南介绍如何集成 Facebook SDK,然后记录这些事件,从而为新旧应用添加应用事件。

1.创建在facebook创建应用,创建应用之后会得到应用编号

2.把 Facebook SDK 加入你的项目

在项目中使用 Facebook SDK,请把它添加为版本依赖关系并导入。如果你在创建新项目,请按以下所有步骤操作。如需把 Facebook SDK 加入现有项目,请从第 3 步开始操作。
1.前往Android Studio | New Project | Minimum SDK
2.选择“API 15: Android 4.0.3”或更高版本来创建新项目。
3.在你的项目中,打开
your_app | Gradle Scripts | build.gradle
4.把 Maven Central Repository 添加到dependencies:前的build.gradle
repositories {
        mavenCentral()
    }
5. 把compile 'com.facebook.android:facebook-android-sdk:[4,5)'加入你的build.gradle依赖关系。
6. 创建你的项目。
7. 把 Facebook SDK 导入你的应用:
import com.facebook.FacebookSdk;
添加 Facebook 应用编号
请为应用添加 Facebook 应用编号,并更新你的 Android 清单。
1.打开你的strings.xml文件,例如:/app/src/main/res/values/strings.xml。
2.添加名为facebook_app_id的新字串,字串名称应包含你的 Facebook 应用编号:
<string name="facebook_app_id">这是你的应用编号</string>
3.打开AndroidManifest.xml。
4.把uses-permission元素加入清单:
<uses-permission android:name="android.permission.INTERNET"/>
5. 把一项meta-data元素添加到application元素:
<application android:label="@string/app_name" ...>
    ...
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    ...
</application>

3.把应用的包名填上去
包名是你 Android 应用的独特标识符。如果用户还未安装应用,我们就会使用这个包名让他们从 Google Play 下载你的应用。你可以在Android Manifest中找到你的包名。

android 接入nfc java Android 接入facebook_Android

与此同时需要Android 密钥散列,debug密钥可以根据代码得到也可以用keytools 得到

1.代码得到


PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES); for(Signature signature : info.signatures) { i++; MessageDigest md = MessageDigest.getInstance("SHA1"); md.update(signature.toByteArray()); String KeyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT); //KeyHash 就是你要的,不用改任何代码 复制粘贴 ; Log.e("222", "KeyHash=" + KeyHash); }


2.命令生成

Mac 操作系统
要生成开发密钥散列,请打开一个终端窗口,运行以下命令:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

此命令将针对您的开发环境生成一个包含 28 个字符的唯一密钥散列。

Windows

  • java 开发包中的密钥和证书管理工具 (keytool)

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

正式的key可以通过上面的方式得到

3.初始化facebook SDK进行埋点


FacebookSdk.setAutoInitEnabled(true); FacebookSdk.fullyInitialize(); //调试用 FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS); AppEventsLogger logger = AppEventsLogger.newLogger(this); logger.logEvent("sentFriendRequest"); //facebook 埋点 logUserRegistrationSuccessfulEvent("User Registration Successful"); logInstallationIsCompleteEvent ("installationIsComplete"); logger.logEvent("installation is complete");


public void logUserRegistrationSuccessfulEvent (String userRegistrationSuccessful) { AppEventsLogger logger = AppEventsLogger.newLogger(this); Bundle params = new Bundle(); // params.putString("UserRegistrationSuccessful", userRegistrationSuccessful); logger.logEvent("User Registration Successful"); } public void logInstallationIsCompleteEvent (String installationIsComplete) { AppEventsLogger logger = AppEventsLogger.newLogger(context); Bundle params = new Bundle(); // params.putString("installationIsComplete", installationIsComplete); logger.logEvent("installation is complete"); }