【基础】Android版Facebook SDK入门指南
· 2023-02-15

苹果IDFA新政策落地,提前检查你的广告账户,继上期iOS SDK接入指南,GatherOne的AM专家本期为您带来Facebook Android SDK,您有一份干货待查收。

4月5日,苹果在开发者网站发布消息表示,将从iOS 14.5,iPadOS 14.5和tvOS 14.5发布后,开始执行IDFA(广告标识符)的新政策。


这也意味着,在发布这些系统更新之后,开发者将需要获得明确的权限才能访问设备上广告标识符(IDFA)。只有这样才能跨应用和网站跟踪用户以,以进行广告定位。


苹果IDFA新政策落地,提前检查你的广告账户,继上期iOS SDK接入指南,GatherOne的AM专家本期为您带来Facebook Android SDK,您有一份干货待查收。


Android版Facebook SDK是将Android应用与Facebook集成的最简便方法。


要使用Facebook SDK,有两种应用设置方法:


·使用快速入门。


·使用Facebook SDK设置项目。


快速入门


要获取Facebook应用编号、配置应用设置、导入Facebook SDK,请点击下方按钮并遵循在线说明操作。


Android快速入门


Android Studio设置


如要在项目中使用Facebook SDK,请将其添加为构建依赖项,然后导入。


1.前往Android Studio|New Project(新项目)|Minimum SDK(基本版SDK)。


2.选择API 15:Android 4.0.3(IceCreamSandwich)或更高版本,然后创建新项目。


3.创建新项目后,打开Gradle Scripts|build.gradle(Project:<your_project>并完成下列操作:


a.添加以下内容到build.gradle(Project)文件的buildscript{repositories{}}部分:


mavenCentral()


b.保存并关闭build.gradle(Project:<your_project>)。


4.打开Gradle Scripts|build.gradle(Module:app)并完成下列操作:


a.添加以下内容到build.gradle(module:app)文件的dependencies{}部分,以便编译最新版本的Facebook SDK:



您使用Facebook SDK时,如果未禁用事件自动记录功能,一些应用事件将被自动记录和收集,用于Facebook分析。关于哪些信息会被收集以及如何禁用事件自动记录的详细信息,请参阅应用事件自动记录。


b.保存并关闭build.gradle(Module:app)。


5.构建项目。然后即可将com.facebook.FacebookSdk导入应用。


添加Facebook应用编号


然后向项目的字符串文件添加您的Facebook应用编号,并更新Android清单:


1.打开您的/app/res/values/strings.xml文件。


2.在文件中添加string元素,元素的名称属性为facebook_app_id,值为您的Facebook应用编号。例如



3.打开/app/manifests/AndroidManifest.xml


4.将uses-permission元素添加到清单:



5.将meta-data元素添加到application元素内:



发送图片或视频


如果要通过Android版Facebook应用分享链接、图片或视频,还需要在清单文件中声明FacebookContentProvider。


在authorities值的末尾添加您的应用编号。例如,如果Facebook应用编号是1234,则声明应如下图所示:



结合使用SDK和ProGuard


无需执行任何其他步骤,即可在Android版Facebook SDK中使用ProGuard。


运行示例应用


以下示例均为SDK代码:


·HelloFacebookSample—显示个人主页访问权限、状态更新和照片上传


·RPSSample—使用原生分享对话框、开放图谱发布工具、选择工具、邀请和深度链接。


·Scrumptious—登录、请求、选择工具、照片上传和开放图谱发布工具。


您可以将SDK导入Android Studio项目,用示例进行试验。


上述示例为项目依赖关系,而不是maven central或jcenter中央存储库依赖关系。所以,当本地SDK副本更新时,示例将反映出相关更改。


如需快速运行示例应用,您可以生成适用于您的开发环境的密钥散列。将这些密钥散列添加到示例应用的Facebook开发者资料页。用于生成密钥散列的Keytool随附于Java SE开发包(JDK)中,您在设置开发环境时需要安装这个开发包。OpenSSL可以从OpenSSL下载。


在OS X中运行:



在Windows系统中,您需要以下各项:


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


·Google Code Archive的Windows版OpenSSL库


在Java SDK文件夹的命令提示符中运行以下命令:



系统将生成包含28个字符的字符串。


前往Facebook开发者网站。登录Facebook,然后通过右上方的下拉菜单,前往开发者设置:



在开发者设置菜单中选择示例应用,然后添加密钥散列并保存到资料页:



如果使用多个设备开发,则可以添加多个密钥散列。


现在,您可以编写并运行所有示例—包括使用“Facebook登录”的示例。


创建开发密钥散列


Facebook使用密钥散列验证您的应用和Facebook应用之间的互动。如果运行使用“Facebook登录”功能的应用,则您需要向Facebook开发者资料页添加Android开发密钥散列。


对于您发布的应用版本,也需要生成和设置发布密钥散列。


在OS X或Windows内,您可以生成密钥散列,也可以使用Settings.getApplicationSignature(Context)返回的值获得散列。如需获取详细说明,请参阅运行示例应用。


后续步骤


安装Android版Facebook SDK并配置Facebook应用编号后,将激活以下功能:


·Android版Facebook登录


·应用事件


·“分享”和“发送”对话框


设置发布密钥散列


要验证您的应用与Facebook之间的信息交换,您需要生成一个发布密钥散列,并将它添加到Facebook应用编号内的Android设置。如果不执行这个操作,当应用发布到商店后,应用内的Facebook集成可能不会正常运行。


在之前的步骤中,您应该已使用适用于您的开发环境的密钥散列更新Facebook开发者设置。


发布应用后,应用通常会签上您的开发环境的不同签名。所以,请务必创建发布密钥散列,并将它添加到Facebook应用编号的Android设置。


要生成发布密钥散列,请在Mac或Windows内运行以下命令,并替换您的发布密钥别名和keystore路径。


在Mac操作系统中,运行:



在Windows系统中,您需要以下各项:


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


·Google Code Archive的Windows版OpenSSL库


在Java SDK文件夹的命令提示符中运行以下命令:



请务必使用您在首次创建发布密钥时设置的密码。


此命令将生成包含28个字符的字符串。复制此发布密钥散列,并将其粘贴至Facebook应用编号的Android设置。



此外,还应检查Facebook应用编号的Android设置是否还包括正确的包名和Android包的主要活动类别。


结合使用Facebook SDK和Maven


您可以声明Maven与Android版SDK最新可用版本的依赖关系:



示例应用疑难解答


如果无法正常运行示例应用,则可能与密钥散列有关。您可能会遇到以下情况:


显示原生“登录”对话框,但接受权限后仍处于退出状态。同时,Logcat还包括一个异常:



显示非原生“登录”对话框,同时显示一条错误消息:“..应用的Facebook登录配置错误...”。


检查密钥散列,确保使用了正确的密钥散列。I


您还可以手动将示例代码修改为正确的密钥散列。例如,在HelloFacebookSampleActivity类中,暂时更改onCreate():



保存更改,然后重新运行示例代码。检查Logcat的消息输出,应与下图相似:



在开发者资料页保存密钥散列。重新运行示例,验证是否可以成功登录。


Popular articles
Are you ready to maximize your earnings? Try ProPush.me Constructor!
Marketing
Vietnam’s Controlled Gaming Shift Gains Ground, But Domestic Demand Still Lags
Southeast Asia
Full House at GAT Expo Cartagena 2026 Academic Agenda
Online Game
GAT Expo Puerto Rico Will Pulse with the New Era of Gaming in the Caribbean
Marketing
PropellerAds Positions Itself as a Go-To Traffic Source for iGaming Advertisers Ahead of a High-Demand Season
Marketing
1spin4win grows its Latin American presence by partnering with Fortuna Juegos
Online Game
British gambling levy rates confirmed for each vertical
Regulation
GAT CDMX 2025 Institutional Academy: Leaders and Experts Analyze the Present and Future of the Gaming Industry in Mexico and Lat
Sports Game
DB Gaming Is One of Asia’s Top-Tier Game Solution Providers, Recognized as a Pioneer in the Asian Gaming Industry.
Marketing
JILI Partners with Cricket Legend AB de Villiers (ABD) to Launch Exclusive Branded Game Series 100% 11
Sports Game
Online gambling, crypto pose ongoing money laundering risks in Philippines, analyst says
Southeast Asia
Manila delivers: Highlights from SiGMA Asia 2026 
Southeast Asia
Vietnam's tightening online gaming policy creates new market opportunities
Southeast Asia
New Jersey July Gambling Revenue Hits $606M, Sweeps Casinos Banned
Regulation
Gaming & Technology Expo Makes a Powerful Entrance in CDMX
Marketing
Home
Game
Cooperation
Find
My