[Unity] Facebook SDK 範例使用教學



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] Facebook SDK

平台選擇

通常使用 Unity 開發的都是從 Android 開始
接下來也以 Android 為例解說

[Unity] Facebook SDK

命名

Naming 是最困難的一部分...XD
總之就取個好記又和別人不一樣的名字吧!

[Unity] Facebook SDK

Package 與 Activity Name

接下來要設定 Package Name 和 Activity Class Name
Package Name 要和 Unity 專案中設定一樣
而Unity 的預設 Activity 是
com.unity3d.player.UnityPlayerActivity

[Unity] Facebook SDK

測試確認

通常都不會上架之後才測試 Facebook 吧?
所以出現這個視窗就不理他
選擇 Use this package name 繼續~

[Unity] Facebook SDK

建立 Key Hashes

詳細請看這篇:如何產生 Android Key Hash

上面這篇是使用 Mac 建立的
若是用 Windows 的可以先略過這個步驟
等待會 OpenSSL 和 JDK 安裝好
環境變數設好之後再回頭來產生 Key Hash

[Unity] Facebook SDK

建立完成

完成後可以看到 Facebook 的 App ID
待會 Unity 中會需要設定

[Unity] Facebook SDK

下載 Facebook SDK

SDK 更新的頻率很頻繁
基本上大型專案功能沒問題
就不需要太常更新

[Unity] Facebook SDK

開新 Unity 專案

開一個全新的專案
並把 FacebookSDK package 中的東西全部匯入

[Unity] Facebook SDK

Facebook Setting

匯入完成後
點上方選單列會新增一個 Facebook
打開後選 Edit Setting

[Unity] Facebook SDK

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.

[Unity] Facebook SDK

下載 Openssl-forwindows

[Unity] Facebook SDK

安裝路徑

解壓縮 OpenSSL 包後
放到自己想要的位置
剪刀是放在 Program Files 下

[Unity] Facebook SDK

新增 OpenSSL 環境變數

我的電腦 => 右鍵內容 => 進階系統設定 => 環境變數
在系統變數中找到 Path
新增路徑指向 OpenSSL 下的 bin 子資料夾
記得前面要加分號

Ex. C:\Program Files\OpenSSL\bin

接著重新啟動 Unity(一定要關掉再打開)

[Unity] Facebook SDK

Keytool not found

搞定 OpenSSL 後
沒設定好 JDK 的話會接著遇到這個問題

[Unity] Facebook SDK

下載 JDK

[Unity] Facebook SDK

新增 JDK 環境變數

跟 OpenSSL 一樣
將路徑指到子資料夾 bin 下
設定完成後再次重新啟動 Unity

Ex. C:\Program Files\Java\jdk1.8.0_25\bin

[Unity] Facebook SDK

確認 Bundle ID

要和 Facebook 後台一樣

[Unity] Facebook SDK

設定 Scenes

把 Examples 中的場景全部加到 Build Settings 中
MainMenu Scene 擺第一個

[Unity] Facebook SDK

Unable to merge android menifests

接下來可能會遭遇到最後這個問題
各個 Menifests 的版本設定不一

[Unity] Facebook SDK

Error Log

在 Log 中可以看到所需要
minSdkVerion 和 targetSdkVersion
的最高版本為何

[Unity] Facebook SDK

SdkVersion 設定

Minimum API Level 可以在 Other Settings 頁面設定
對應到 minSdkVersion
但是沒有 targetSdkVersion 的設定

比較快的方法是直接打開主要的 Manifest.xml
在裡面加入 SdkVesrion 的設定
Path: Assets/Plugins/Android/AndroidManifest.xml

[Unity] Facebook SDK

登入 FB

Build 成功後
先點擊 FB.Init 初始化
就可以開始登入了
記得要使用開發者的帳號

[Unity] Facebook SDK[Unity] Facebook SDK

發文測試

測試時權限可以選擇只限本人看到
接下來就可以隨意開心地測試了

[Unity] Facebook SDK[Unity] Facebook SDK


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 );



歡迎您留言與分享!(Welcome for comments or sharing!)

Related Post:

Tagged on: ,