[FACEBOOK][JAVASCRIPT][SDK] 開發紀錄 Login

摘要:[FACEBOOK][JAVASCRIPT][SDK] 開發紀錄

最近在寫Facebook 

紀錄一下

首先 該網頁要先載入

 <script src="http://connect.facebook.net/zh_TW/all.js" type="text/javascript"></script>

 <script src="../JS/jquery-1.7.2.js" type="text/javascript"></script>

順便載入 JQUERY 吧 不然你要用DOM 的方式寫也行....不過CODE要寫很多 自己的用法啦....
看個人

因為是FB的JS SDK

 

所以我們一定要跟JS成為好朋友

然後裡面記得一定要預先載入

<script type="text/javascript">

  $(function () {
            FB.init({
             
                appId: ["您申請的APPID編號"],
                status: true,
                cookie: true,
                xfbml: true,
                oauth: true
            });
       });

</script>

 

然後記得一定要在BODY裡面有這個標籤

 <div id="fb-root"></div>

這樣載入FBAPI就算完成了~~

有人做到這邊因該會有一些疑問

我的FB的應用程式該如何申請(不申請當然啥都不用玩了),

https://developers.facebook.com/apps  <= 申請網址

請點選建立新的應用程式

網下看到這個 網址 記得填入你的對外網址 測試的時候會比較沒問題

若您沒有對外的只是想先寫一下的話 你可以寫 http://localhost/ 就可以了 不過建議最好要有對外網址

不然你再用某些 likeboxlist 或是按讚功能的時候會有錯誤出現....因為不會有網站叫做localhost .... 若是有對外IP也可以這樣填上也行

至於下面未填到的部分請先空白吧   

下面部分在另行說明

分別是有關於 FACEBOOK APP 其實就是網站崁入FB的 "皮"

或是iphone  android 的原生網頁 以及 手機瀏覽網頁的部分

有點我也不是很懂,我們先以第一個為主開始

 

之後我們可以開始寫一開始入門程式

FB的登入狀態

 

     FB.getLoginStatus(function (response) {

     //目前若是與FB連結的狀態


                if (response.status === 'connected') {
                   var userid = response.authResponse.userID;
                   var  access_token = response.authResponse.accessToken;
             

                } else {

      //未登入,與未有使用本程式的應用時
                    FB.login(function (response) {
                        if (response.authResponse) {
                            console.log('Welcome!  Fetching your information.... ');
                            FB.api('/me', function (response) {
                                 alert(response.id +  response.accessToken);
                            });
                        } else {
                            alert('請登入FACEBOOK');
                        }
                    }
                    //權限 manage_pages  粉絲團 權限
                    , { scope: "email, user_likes, user_photos, read_stream,publish_stream, read_stream, read_friendlists, offline_access,user_birthday" }
                    );
                }
            });

到這邊大家或許有點不太懂,小弟一開始其實也不太懂

若各位有寫過jquery 可能就會看得懂,小第一開始Jquery不太好 摸了一下下才大概知道

各位也可以看一下facebook.api 的參考會有講解,不過都是英文的..雖然我也是硬著頭皮讀....

 

正常來說是這樣

 FB.getLoginStatus(callback());

 1. callback 後回來的數值可在裡面再做其他方法

 

 

   fb 上的app是有三種聯繫(  response.status   ) 狀態

      1.有登入並有授權

  2.有登入沒授權

  3.沒登入

  https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/  登入狀態API說明

 

 我用的方式不算正常的方式,@@請大家可以先從FB.API看完後做比較

  我寫的方式只要非連接狀態未授權,就給他跑一次登入就對了,然後登入的時候

  會在要一次授權,

  這時候就會用到 FB.LOGIN () 方法了

 

    1.callback 後回來的數值可在裡面再做其他方法 

 2.使用該APP要取得的權限 EX:貼文,獲得贊數,或是更多的資料之類的......

 

若依照上方程式完成後

您因該會取到自己的ID跟access_token

這兩個值非常重要 若這兩個值缺一了你可能取資料就只能取到部分資料了

FB的API是階層性的 ,所以若要取得其他資料的話

這兩個資料一定要先有 還有一點 access_token 是有有效期限的

 

各位可以先玩玩看目前這一個 下一個再來教發文

謝謝各位

 

新手發文若有錯誤的地方 

敬請指正謝謝


補正:

FF 瀏覽器中

若你是用 ASP.NET 自動產生 html 網頁的 (VS2012)

 

<script type="text/javascript">  <= 這邊TYPE 屬性不用下 不然會無法載入FB.init

因為他預設的 文件規範 好像是HTML5???

你可以改成4.0.1 的格式 或直接把他拿掉就好了@@ (若正規寫法請忽略我...)