2017年3月28日 星期二

Facebook Android SDK: 登入

1.啟用單一登入 
 點選設定>>基本資料   →步驟1

在自己的應用程式設定頁面內將最下方的『ToggleButton』改為是,記得要按下儲存變更
  →步驟2



2.新增<Facebook 登入>按鈕(Layout)
登入按鈕必須要使用特殊的LinkButton,是FB所提供的客製化Button,
在恰當的介面layout的xml中,加上這個按鈕
  
<com.facebook.login.widget.LoginButton android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:layout_alignParentTop="true" 
 android:layout_alignParentStart="true"     
 android:id="@+id/a" />

  • LoginButton - 使用要求的讀取或發布權限起始登入程序
  • CallbackManager - 用於將呼叫回傳至 Facebook SDK 以及您的已註冊回應呼叫。應該從起始活動 avtivity 或片段 fragment 的 onActivityResult 呼叫此函數。
  • AccessToken(存取權限) - 使用此類別的圖形 API 要求 (GraphAPI)。他會顯示用戶編號及被接受和被拒絕的權限。
  •  Profile - 此類別具有已登入用戶的基本資料。

LoginButton 是套件 LoginManager 中的 UI控制項。使用者點擊這個按鈕時,將會以LoginManager 中設定的權限初始化登入。此按鈕會追蹤登入狀態,並根據用戶的驗證狀態顯示正確文字。

3.增加程式部分
java主程式裡
介面對應的 Activity中,onCreate 的方法裡,要初始化Facebook SDK
由於目前的APP 使用Fragment 設計居多,所以FB開發者教學裡是以 Fragment 為主要教學方式
設定欄位類別
public class  MainActivity extends AppCompatActivity {
CallbackManager callbackManeger;
    AccessToken accessToken;
由於會反覆用到,所以設定在Activity欄位裡
 
首先先初始化 Facebook SDK
FacebookSdk.sdkInitialize(getApplicationContext()); 
接下來連結程式與layout的 linkbutton
 
LoginButton loginButton=(LoginButton)findViewById(R.id.a); 

再建立CallbackManager
callbackManeger =CallbackManager.Factory.create();
 
然後設定當LoginButton 收到回傳(callback)的處理動作:成功、失敗、取消
loginButton.registerCallback(callbackManeger, new FacebookCallback<LoginResult>() {
  ....
}); 

如果登入成功,APP會收到一組AccessToken(剛剛程式裡的欄位變數accessToken),
之後要用到graph API的地方都用這組token 
接著送出一個request 出去,在onCompleted裡面會拿到一個傳入變數 JSONObject(變數名是object),
包裹著使用者資訊(name使用者姓名、link個人連結、id)
 
 
  
 

2017年3月14日 星期二

Facebook SDK + android studio

一.建立一個專案並使用Facebook SDK(使用API 15:Android 4.0.3)

1.建完專案後,將Project結構視角切換至<Project>→步驟1

2.在app下找到<build.gradle>→步驟2,3

3.將

repositories{
mavenCentral()
}

加入模組層級,決定套件來源→步驟4

4. 加入Facebook SDK最新版本的編譯相依性(宣告相依關係)→步驟5

compile 'com.facebook.android:facebook-android-sdk:4.+'

 
5.建置專案(Make Project)
匯入Facebook SDK

 二.申請Facebook應用程式編號

登入FB後即可建立新的應用程式編碼(如下圖)
之後即可照著facebook提供的教學步驟一步步進行

三.加入Facebook應用程式編號

1.在string.xml字串檔中,加入新的一個字串,名稱為 facebook_app_id,值為 Facebook應用程式編號
<string name="facebook_app_id">應用程式編號 </string>

 2.調整Mainifests,新增網路權限
<uses-permission android:name="android.permission.INTERNET"/>
(此步為加入特權,如:允許相機,sd卡....都可在此設定) 
→步驟1
3.在標籤<application>中新增meta標籤
<application android:label="@string/app_name">
    ...
    <meta-data android:name="com.facebook.app.sdk.ApplicationId"        android:value="@string/facebook_app_id"/>
    ... 
</application>→步驟2
 4.[option]如果你要發送圖片或是影片或分享,還需宣告FacebookContentProvider將應用程式編號附加到authorities值的結尾
<provider android:authorities="com.facebook.app.FacebookContentProvider(在此填入FB的ID)" android:name="com.facebook.FacebookContentProvider" android:exported="true"/>→步驟3

接著就可以繼續完成你的開發者快速入門

當我們要上架時,需要讓Android進行APK驗證,需要找到開發金鑰

 找金鑰時就須用到openssl(載點)
利用cmd找到(白底處為key hashes)
 即可找到每台電腦獨一無二的Key hashes

 告此到一段落,就可以休息喝杯茶去囉!!!!!!





Finished