4月5日,蘋果在開(kāi)發(fā)者網(wǎng)站發(fā)布消息表示,將從iOS 14.5,iPadOS 14.5和tvOS 14.5發(fā)布后,開(kāi)始執(zhí)行IDFA(廣告標(biāo)識(shí)符)的新政策。
這也意味著,在發(fā)布這些系統(tǒng)更新之后,開(kāi)發(fā)者將需要獲得明確的權(quán)限才能訪問(wèn)設(shè)備上廣告標(biāo)識(shí)符(IDFA)。只有這樣才能跨應(yīng)用和網(wǎng)站跟蹤用戶以,以進(jìn)行廣告定位。
蘋果IDFA新政策落地,提前檢查你的廣告賬戶,繼上期iOS SDK接入指南,GatherOne的AM專家本期為您帶來(lái)Facebook Android SDK,您有一份干貨待查收。
Android版Facebook SDK是將Android應(yīng)用與Facebook集成的最簡(jiǎn)便方法。
要使用Facebook SDK,有兩種應(yīng)用設(shè)置方法:
·使用快速入門。
·使用Facebook SDK設(shè)置項(xiàng)目。
快速入門
要獲取Facebook應(yīng)用編號(hào)、配置應(yīng)用設(shè)置、導(dǎo)入Facebook SDK,請(qǐng)點(diǎn)擊下方按鈕并遵循在線說(shuō)明操作。
Android快速入門
Android Studio設(shè)置
如要在項(xiàng)目中使用Facebook SDK,請(qǐng)將其添加為構(gòu)建依賴項(xiàng),然后導(dǎo)入。
1.前往Android Studio|New Project(新項(xiàng)目)|Minimum SDK(基本版SDK)。
2.選擇API 15:Android 4.0.3(IceCreamSandwich)或更高版本,然后創(chuàng)建新項(xiàng)目。
3.創(chuàng)建新項(xiàng)目后,打開(kāi)Gradle Scripts|build.gradle(Project:<your_project>并完成下列操作:
a.添加以下內(nèi)容到build.gradle(Project)文件的buildscript{repositories{}}部分:
mavenCentral()
b.保存并關(guān)閉build.gradle(Project:<your_project>)。
4.打開(kāi)Gradle Scripts|build.gradle(Module:app)并完成下列操作:
a.添加以下內(nèi)容到build.gradle(module:app)文件的dependencies{}部分,以便編譯最新版本的Facebook SDK:
您使用Facebook SDK時(shí),如果未禁用事件自動(dòng)記錄功能,一些應(yīng)用事件將被自動(dòng)記錄和收集,用于Facebook分析。關(guān)于哪些信息會(huì)被收集以及如何禁用事件自動(dòng)記錄的詳細(xì)信息,請(qǐng)參閱應(yīng)用事件自動(dòng)記錄。
b.保存并關(guān)閉build.gradle(Module:app)。
5.構(gòu)建項(xiàng)目。然后即可將com.facebook.FacebookSdk導(dǎo)入應(yīng)用。
添加Facebook應(yīng)用編號(hào)
然后向項(xiàng)目的字符串文件添加您的Facebook應(yīng)用編號(hào),并更新Android清單:
1.打開(kāi)您的/app/res/values/strings.xml文件。
2.在文件中添加string元素,元素的名稱屬性為facebook_app_id,值為您的Facebook應(yīng)用編號(hào)。例如
3.打開(kāi)/app/manifests/AndroidManifest.xml
4.將uses-permission元素添加到清單:
5.將meta-data元素添加到application元素內(nèi):
發(fā)送圖片或視頻
如果要通過(guò)Android版Facebook應(yīng)用分享鏈接、圖片或視頻,還需要在清單文件中聲明FacebookContentProvider。
在authorities值的末尾添加您的應(yīng)用編號(hào)。例如,如果Facebook應(yīng)用編號(hào)是1234,則聲明應(yīng)如下圖所示:
結(jié)合使用SDK和ProGuard
無(wú)需執(zhí)行任何其他步驟,即可在Android版Facebook SDK中使用ProGuard。
運(yùn)行示例應(yīng)用
以下示例均為SDK代碼:
·HelloFacebookSample—顯示個(gè)人主頁(yè)訪問(wèn)權(quán)限、狀態(tài)更新和照片上傳
·RPSSample—使用原生分享對(duì)話框、開(kāi)放圖譜發(fā)布工具、選擇工具、邀請(qǐng)和深度鏈接。
·Scrumptious—登錄、請(qǐng)求、選擇工具、照片上傳和開(kāi)放圖譜發(fā)布工具。
您可以將SDK導(dǎo)入Android Studio項(xiàng)目,用示例進(jìn)行試驗(yàn)。
上述示例為項(xiàng)目依賴關(guān)系,而不是maven central或jcenter中央存儲(chǔ)庫(kù)依賴關(guān)系。所以,當(dāng)本地SDK副本更新時(shí),示例將反映出相關(guān)更改。
如需快速運(yùn)行示例應(yīng)用,您可以生成適用于您的開(kāi)發(fā)環(huán)境的密鑰散列。將這些密鑰散列添加到示例應(yīng)用的Facebook開(kāi)發(fā)者資料頁(yè)。用于生成密鑰散列的Keytool隨附于Java SE開(kāi)發(fā)包(JDK)中,您在設(shè)置開(kāi)發(fā)環(huán)境時(shí)需要安裝這個(gè)開(kāi)發(fā)包。OpenSSL可以從OpenSSL下載。
在OS X中運(yùn)行:
在Windows系統(tǒng)中,您需要以下各項(xiàng):
·Java開(kāi)發(fā)包中的密鑰和證書管理工具(keytool)
·Google Code Archive的Windows版OpenSSL庫(kù)
在Java SDK文件夾的命令提示符中運(yùn)行以下命令:
系統(tǒng)將生成包含28個(gè)字符的字符串。
前往Facebook開(kāi)發(fā)者網(wǎng)站。登錄Facebook,然后通過(guò)右上方的下拉菜單,前往開(kāi)發(fā)者設(shè)置:
在開(kāi)發(fā)者設(shè)置菜單中選擇示例應(yīng)用,然后添加密鑰散列并保存到資料頁(yè):
如果使用多個(gè)設(shè)備開(kāi)發(fā),則可以添加多個(gè)密鑰散列。
現(xiàn)在,您可以編寫并運(yùn)行所有示例—包括使用“Facebook登錄”的示例。
創(chuàng)建開(kāi)發(fā)密鑰散列
Facebook使用密鑰散列驗(yàn)證您的應(yīng)用和Facebook應(yīng)用之間的互動(dòng)。如果運(yùn)行使用“Facebook登錄”功能的應(yīng)用,則您需要向Facebook開(kāi)發(fā)者資料頁(yè)添加Android開(kāi)發(fā)密鑰散列。
對(duì)于您發(fā)布的應(yīng)用版本,也需要生成和設(shè)置發(fā)布密鑰散列。
在OS X或Windows內(nèi),您可以生成密鑰散列,也可以使用Settings.getApplicationSignature(Context)返回的值獲得散列。如需獲取詳細(xì)說(shuō)明,請(qǐng)參閱運(yùn)行示例應(yīng)用。
后續(xù)步驟
安裝Android版Facebook SDK并配置Facebook應(yīng)用編號(hào)后,將激活以下功能:
·Android版Facebook登錄
·應(yīng)用事件
·“分享”和“發(fā)送”對(duì)話框
設(shè)置發(fā)布密鑰散列
要驗(yàn)證您的應(yīng)用與Facebook之間的信息交換,您需要生成一個(gè)發(fā)布密鑰散列,并將它添加到Facebook應(yīng)用編號(hào)內(nèi)的Android設(shè)置。如果不執(zhí)行這個(gè)操作,當(dāng)應(yīng)用發(fā)布到商店后,應(yīng)用內(nèi)的Facebook集成可能不會(huì)正常運(yùn)行。
在之前的步驟中,您應(yīng)該已使用適用于您的開(kāi)發(fā)環(huán)境的密鑰散列更新Facebook開(kāi)發(fā)者設(shè)置。
發(fā)布應(yīng)用后,應(yīng)用通常會(huì)簽上您的開(kāi)發(fā)環(huán)境的不同簽名。所以,請(qǐng)務(wù)必創(chuàng)建發(fā)布密鑰散列,并將它添加到Facebook應(yīng)用編號(hào)的Android設(shè)置。
要生成發(fā)布密鑰散列,請(qǐng)?jiān)贛ac或Windows內(nèi)運(yùn)行以下命令,并替換您的發(fā)布密鑰別名和keystore路徑。
在Mac操作系統(tǒng)中,運(yùn)行:
在Windows系統(tǒng)中,您需要以下各項(xiàng):
·Java開(kāi)發(fā)包中的密鑰和證書管理工具(keytool)
·Google Code Archive的Windows版OpenSSL庫(kù)
在Java SDK文件夾的命令提示符中運(yùn)行以下命令:
請(qǐng)務(wù)必使用您在首次創(chuàng)建發(fā)布密鑰時(shí)設(shè)置的密碼。
此命令將生成包含28個(gè)字符的字符串。復(fù)制此發(fā)布密鑰散列,并將其粘貼至Facebook應(yīng)用編號(hào)的Android設(shè)置。
此外,還應(yīng)檢查Facebook應(yīng)用編號(hào)的Android設(shè)置是否還包括正確的包名和Android包的主要活動(dòng)類別。
結(jié)合使用Facebook SDK和Maven
您可以聲明Maven與Android版SDK最新可用版本的依賴關(guān)系:
示例應(yīng)用疑難解答
如果無(wú)法正常運(yùn)行示例應(yīng)用,則可能與密鑰散列有關(guān)。您可能會(huì)遇到以下情況:
顯示原生“登錄”對(duì)話框,但接受權(quán)限后仍處于退出狀態(tài)。同時(shí),Logcat還包括一個(gè)異常:
顯示非原生“登錄”對(duì)話框,同時(shí)顯示一條錯(cuò)誤消息:“..應(yīng)用的Facebook登錄配置錯(cuò)誤...”。
檢查密鑰散列,確保使用了正確的密鑰散列。I
您還可以手動(dòng)將示例代碼修改為正確的密鑰散列。例如,在HelloFacebookSampleActivity類中,暫時(shí)更改onCreate():
保存更改,然后重新運(yùn)行示例代碼。檢查L(zhǎng)ogcat的消息輸出,應(yīng)與下圖相似:
在開(kāi)發(fā)者資料頁(yè)保存密鑰散列。重新運(yùn)行示例,驗(yàn)證是否可以成功登錄。