2014年8月17日 星期日

Facebook sdk study

先到這邊下載免費sdk,
看到網頁出現Download字樣總是讓人興奮哪!
點進去之後會出現各種版本,
小弟載的是5.1版,
點擊之後就會自己下載了。

然後打開unity匯入sdk,
會出現三個資料夾裡面包含一個Example場景。
接下來呢我們先到這個頁面看看教學影片或跟著以下步驟操作for Android,
首先看樣子是要弄個臉書開發者帳號,
點擊Step 1提供的連結再登入你自己的臉書後,
右上方有個Register Now,點擊註冊吧!

註冊好了以後,
點選上方菜單Apps底下的Create New App,
會跳出視窗讓你輸入應用程式的基本資訊,
因為只是測試用所以我只輸入了應用程式的名稱(第一欄),可以用中文。

創建好了以後會進入一個title為Dashboard的頁面,
裏頭會有你的App的ID,
複製下來然後到unity編輯器,
找到上方菜單裡的Facebook/Edit Settings點擊,
右方檢視面板會有個紅字Invalid App id
把你複製來的ID貼到App ID欄位,
紅字不見了,
然後點選下方的Android Build Facebook Settings箭頭處打開,
再搭配上一篇來解決問題。

接下來我們回到臉書開發者頁面,
點選左邊列的第二項Settings,
這裡可以讓你增加新的平台應用此sdk,
點擊+Add Platform選Android,
會看到三個欄位可以填寫,
看起來很面熟,
這不就是剛剛unity編輯器上檢視面板中的Android Build Facebook Settings裏頭的三項資訊嗎!?
複製過來吧!
然後打開Single Sign OnDeep Linking,
按下方的Save Change。

還是開發者頁面,
左方的Status&Review進入,
上面會有個能切換的選項,
是用來公開此App的,
為了實現能讓你的遊戲用戶在Andriod手機上騷擾他的朋友們,
必須打開此選項。
只要回到剛剛的Settings頁面,
Contact Email欄位輸入你的Email即可,
然後回頭打開公開的選項就會看到綠色圓點跑出來了。

最後只要回unity將範例Build到Android手機上就能測試啦!

2014年8月2日 星期六

初探Unity Facebook SDK的問題

開始測試Facebook SDK並做些紀錄。

先提供載點參考攻略

過程就不贅述了。

遇到的第一個問題是,
在build成apk時跑到一半就跳出可怕的紅字:

Error building Player: Win32Exception: ApplicationName='C:\Program Files (x86)\Java\jre6\bin\javac.exe', CommandLine='-bootclasspath "C:/adt-bundle-windows-x86_64-20131030/adt-bundle-windows-x86_64-20131030/sdk/platforms/android-19\android.jar" -d "C:\Users\user\Documents\Facebook SDK study\Temp\StagingArea\bin\classes" -source 1.6 -target 1.6 -encoding ascii "com\facebook\android\R.java" "com\mytest\slazen\R.java"', CurrentDirectory='C:\Users\user\Documents\Facebook SDK study\Temp\StagingArea\gen'

這大串看起來還真嚇人哪...

一開始以為是缺了javac.exe,

所以我自作聰明的到別的資料夾找到這個檔案複製過來,

結果變成其他問題...

然後實在因為找不到確切的原因,

所以我看了一下電腦的jdk,

是筆電預先就安裝的jdk1.6,

移除之後安裝新的jdk1.8

當然是32位元的,然後就OK了,

但是!!!

新的問題出現了,

在build完之後依然跳出可怕的紅字,

Your Android setup is not correct. See Settings in Facebook menu.

好吧照字面上講的檢查一下menu,

選到Unity菜單上Facebook/Edit settings,

或直接選到project裡的Facebook/Resources/FacebookSettings一樣,

檢視面板中選到Android Build Facebook Settings會看到黃字:

OpenSSL not found..........

解決方法小弟是參考這裡

先檢查電腦有沒有安裝OpenSSL,

沒有的話就下載安裝吧,

安裝前可以先服用這篇參考一下,

安裝完之後照以下步驟操作:

打開控制台->系統->進階系統設定->環境變數,

跳出的視窗分成上下兩區,

下面區找出變數Path點選之後再點擊編輯,

跳出一個小視窗裡有一欄變數值,是很長的一串位址,

在此字串的末尾加上剛剛安裝的OpenSSL的bin資料夾路徑,

比方說小弟的電腦是在:

C:\OpenSSL-Win64\bin

將此路徑加在上述一大串的末尾,

當然加上去之前要先用一個分號(;)隔開,

然後重開unity。

接著可能會發現原本的OpenSSL not found可能會變成了:

Keybool not found.......

一波未平一波又起啊。

重覆剛剛加上路徑的動作,

只是這次要加的路徑是jdk的bin資料夾,

比方說小弟的電腦是在:

C:\Program Files (x86)\Java\jdk1.8.0_11\bin

一樣前面要加分號,

重開unity再build終於成功了!

當然前面那些加上路徑的動作是為了取得key hash。

明天繼續研究到底此範例提供了殺毀。

參考:

http://answers.unity3d.com/questions/616484/open-ssl-not-found.html
http://devco.re/blog/2014/04/11/openssl-heartbleed-how-to-hack-how-to-protect/