FacebookSDK接入流程、注意事项

一、导入依赖项

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文件的名字

        散列密钥生成:

        生成Facebook散列密钥 - 简书

注:上传新版本时如果遇到

修改项目中的 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 

猜你喜欢

转载自blog.csdn.net/cyc1481854225/article/details/123878637