Overview
1. 新增 Facebook App
2. 設定 Facebook App Key Hash
3. 安裝 OpenSSL
4. 安裝 JDK
5. 設定環境變數
6. 下載並匯入 Unity Facebook SDK
7. 確認 Bundle ID 與 Keystore
8. 修正 AndroidManifest Merge
9. 輸出!
以下是詳細圖文步驟
建立 Facebook App
首先到 Facebook開發者頁面 申請成為開發者
接著點選 My Apps => Add a New App
平台選擇
通常使用 Unity 開發的都是從 Android 開始
接下來也以 Android 為例解說
命名
Naming 是最困難的一部分…XD
總之就取個好記又和別人不一樣的名字吧!
Package 與 Activity Name
接下來要設定 Package Name 和 Activity Class Name
Package Name 要和 Unity 專案中設定一樣
而Unity 的預設 Activity 是
com.unity3d.player.UnityPlayerActivity
測試確認
通常都不會上架之後才測試 Facebook 吧?
所以出現這個視窗就不理他
選擇 Use this package name 繼續~
建立 Key Hashes
詳細請看這篇:如何產生 Android Key Hash
上面這篇是使用 Mac 建立的
若是用 Windows 的可以先略過這個步驟
等待會 OpenSSL 和 JDK 安裝好
環境變數設好之後再回頭來產生 Key Hash
建立完成
完成後可以看到 Facebook 的 App ID
待會 Unity 中會需要設定
下載 Facebook SDK
SDK 更新的頻率很頻繁
基本上大型專案功能沒問題
就不需要太常更新
開新 Unity 專案
開一個全新的專案
並把 FacebookSDK package 中的東西全部匯入
Facebook Setting
匯入完成後
點上方選單列會新增一個 Facebook
打開後選 Edit Setting
OpenSSL not found
先把 App Id 填入後
打開下方的 Android Build Facebook Setting
確認是否一切正常
這時沒安裝 OpenSSL 的朋友就會遇到以下訊息:
OpenSSL not found. Make sure that OpenSSL is installed, and that it its in your path.
下載 Openssl-forwindows
安裝路徑
解壓縮 OpenSSL 包後
放到自己想要的位置
剪刀是放在 Program Files 下
新增 OpenSSL 環境變數
我的電腦 => 右鍵內容 => 進階系統設定 => 環境變數
在系統變數中找到 Path
新增路徑指向 OpenSSL 下的 bin 子資料夾
記得前面要加分號
Ex. C:\Program Files\OpenSSL\bin
接著重新啟動 Unity(一定要關掉再打開)
Keytool not found
搞定 OpenSSL 後
沒設定好 JDK 的話會接著遇到這個問題
下載 JDK
新增 JDK 環境變數
跟 OpenSSL 一樣
將路徑指到子資料夾 bin 下
設定完成後再次重新啟動 Unity
Ex. C:\Program Files\Java\jdk1.8.0_25\bin
確認 Bundle ID
要和 Facebook 後台一樣
設定 Scenes
把 Examples 中的場景全部加到 Build Settings 中
MainMenu Scene 擺第一個
Unable to merge android menifests
接下來可能會遭遇到最後這個問題
各個 Menifests 的版本設定不一
Error Log
在 Log 中可以看到所需要
minSdkVerion 和 targetSdkVersion
的最高版本為何
SdkVersion 設定
Minimum API Level 可以在 Other Settings 頁面設定
對應到 minSdkVersion
但是沒有 targetSdkVersion 的設定
比較快的方法是直接打開主要的 Manifest.xml
在裡面加入 SdkVesrion 的設定
Path: Assets/Plugins/Android/AndroidManifest.xml
登入 FB
Build 成功後
先點擊 FB.Init 初始化
就可以開始登入了
記得要使用開發者的帳號
發文測試
測試時權限可以選擇只限本人看到
接下來就可以隨意開心地測試了
FacebookManager on Github
程式實作部分可以參考剪刀寫的 FacebookManager
用法大致如下:
m_fbManager = new FBManager(); m_fbManager.LoginCompleteEvent += OnFBLoginComplete; m_fbManager.ErrorEvent += OnFBError; m_fbManager.Login(); m_fbManager.Snapshot( texture, title, fileName );
[…] Facebook SDK 範例使用教學 如何產生 Android Hash Key […]
發送通知( AppRequest)測試階段新手遇到的問題:
1. 某些平台看得到通知,某些沒有 – 後台必須要建立該平台,不然fb不知道訊息要怎麼被確認
2. 發送訊息給朋友,朋友卻看不到 – 必須加入測試者角色
參考
https://forums.coronalabs.com/topic/39528-facebook-apprequests-no-error-but-nothing-happens/
感謝補充!