如何實作 Android程式與 Facebook API #1

http://changyy.pixnet.net/blog/post/29201245-android-%E9%96%8B%E7%99%BC%E6%95%99%E5%AD%B8%E7%AD%86%E8%A8%98—%E4%BD%BF%E7%94%A8-facebook-sdk

我是參考上面這位前輩的網頁, 試著把它整理得更完整。

專案檔請按我下載, 但記得要裡面的Facebook hashcode改掉。

1. 下載Facebook Android SDK. 點選左上角的 [ZIP]下載壓縮檔後解壓縮即可。

2. 下載OpenSSL (MAC OSX有內建所以不用下載)。

3. 先在Eclipse中匯入facebook-android-sdk, [File] -> [New] -> [Project] -> [Android Project] -> Create project from existing source, 請指定到\facebook-facebook-android-sdk-5d44d0c\facebook 資料夾, 按 Finish 結束。

4. 建立一個FBTest 的Android專案, 版本2.1以上就好。 請將Library指定為facebook-android-sdk。 點選 Project 後,選 [Project] -> [Properties] -> [Android] -> [Library] -> 點選 Add 新增 com_facebook_android (第3步一定要做, 不然會找不到library)。

5. 在Eclipse中建立一個Android專案, .java檔內容如下,

package com.cavedu;

import android.app.Activity;
import android.os.Bundle;
import com.facebook.android.*;
import com.facebook.android.Facebook.*;

public class FBTest extends Activity {
private Facebook facebook = new Facebook(“這裡要填入先前申請好的Facebook App ID“);
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
facebook.authorize( this, new DialogListener(){
@Override
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
}
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
}
});
}
}

6. 別忘了在Androidmanifest.xml中新增INTERNET權限

6. 在進入Facebook開發者網站之前, 我們需要在電腦端為這一支程式產生一個Android Hashkey, 最後將這個key上傳到Facebook開發者網站上才能正確進行互動。Facebook不可能讓阿貓阿狗程式都能自由存取Facebook 伺服器, 所以金鑰配對是必要的。

產生的工具是Java的keytool 與我們剛剛所下載的OpenSSL。請在OpenSSL資料夾下找到OpenSSL.exe copy 到 Java的bin資料夾( EX: C:\Program Files\Java\jdk1.7.0\bin)。 然後開啟cmd, 移到系統的Java資料夾後輸入以下指令:

keytool.exe -exportcert -alias androiddebugkey -keystore C:\Users\id\.android\debug.keystore | openssl sha1 -binary | openssl base64

產生的這一串”Sg4dvITi2vDvQXmHKXmBaFi3YpQ=” 就是Android Hashkey, 太棒了~

debug.keystore會根據您的使用者名稱而不同, 您可以從Eclipse找到這個位置。

請接續看[如何實作 Android程式與 Facebook API  #2]

2 thoughts on “如何實作 Android程式與 Facebook API #1

  1. andrew wang says:

    private Facebook facebook = new Facebook("這裡要填入Hashcode");

    應該是 Facebook App ID
    [版主回覆08/11/2012 01:29:03]是的, 已更正. 感謝您指正.

  2. 迷糊﹏輝♂ says:

    不好意思 我想請問一下 為什麼他的
    import com.facebook.android.*;
    import com.facebook.android.model.*;
    這兩行 import不進去
    第四個步驟那邊我也有操作 一開始有勾
    關掉重開之後就變成XX了 …
    麻煩您回答…
    [版主回覆05/26/2013 09:53:16]您好, Facebook SDK 又更新了, 要請您到 Facebook 開發者網站看最新的訊息, 舊版的SDK 中的指令幾乎都停用了.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *