顯示具有 Facebook 標籤的文章。 顯示所有文章
顯示具有 Facebook 標籤的文章。 顯示所有文章

2010年5月27日 星期四

建立Facebook應用程式 Java API (8) - 取得「張貼訊息到塗鴨牆」的權限

1. 如果你想要張貼訊息到使用者的塗鴨牆,則需要先取得使用者的同意才能夠張貼。

    2. 要取得這個權限也不難,只要將網頁導到權限同意頁面而使用者按下同意的按鈕即可。

      3. 至於怎麼取得「權限同意頁面」的網址,做法如下:
        //API_KEY為App的KEY
        //FB_APP_ADDRESS即是使用者按下同意後要導到的網址
        String url = Permission.authorizationUrl(API_KEY, Permission.PUBLISH_STREAM) + "&next=" + FB_APP_ADDRESS;
        //利用Javascript導到權限同意頁面
        response.getWriter().println("<script type='text/javascript'>
        parent.location.href='" + url + "'
        </script>");
        


        2010年1月5日 星期二

        建立Facebook應用程式 Java API (7) - 使用XFBML建立邀請頁面

        1. 需先完成開始使用XFBML步驟。

        2. 加入XFBML邀請頁面程式碼。
        <fb:serverfbml>
            <script type="text/fbml">
              <fb:request-form action="http://apps.facebook.com/votequestionnaire/"
                 target="_top" method="POST" invite="true" type="type"
                 content="content <fb:req-choice url='http://apps.facebook.com/votequestionnaire/' label='label' />">
        
                <fb:multi-friend-selector showborder="false"
                   actiontext="actiontext" exclude_ids="1111111,222222,333333"
                   rows="5" cols="5" bypass="cancel" target="_top" max="25" email_invite="false" />
              </fb:request-form>
            </script>
        </fb:serverfbml> 
        3. 邀請頁面結果如下。(actiontext對應到fb:multi-friend-selector的actiontext屬性、type則對應到fb:request-form的type屬性)

        4. 邀請函結果如下。(content對應到fb:request-form的content屬性、label對應到fb:req-choice的label屬性)










        2010年1月4日 星期一

        建立Facebook應用程式 Java API (6) - 開始使用XFBML

        1. 建立crossDomain.jsp。

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" >
            <head> <title>Cross-Domain Receiver Page</title>
            </head>
            <body>
                <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.js?2" type="text/javascript">
                </script>
            </body>
        </html>
        


        2. 修改聯外通網址(為放置crossDomain.jsp的同一個domain)。



        3. 建立需要使用XFBML的網頁。

           a. 需使用取代原有的<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">取代原有的<html>
           b. <body>在之後加入二個script
        <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript"></script>
        <script type="text/javascript">
        FB_RequireFeatures(["XFBML"], function(){ FB.Facebook.init("你的apiKey", "crossDomain.jsp位置"); });
        </script>


        2009年12月30日 星期三

        建立Facebook應用程式 Java API (5) - 取得朋友Profile內的資料

        //設定要取得的欄位
         Set fields = new HashSet();
         fields.add(ProfileField.SEX.fieldName()); //性別
         fields.add(ProfileField.NAME.fieldName()); //姓名
         fields.add(ProfileField.BIRTHDAY.fieldName()); //生日
         fields.add(ProfileField.PIC_SMALL.fieldName()); //大頭照
        
         //取得所有朋友的Uid
         List friendsUid = client.friends_get().getUid();
        
         //取得使用者資訊
         List users = client.users_getInfo(friendsUid, fields).getUser();
         for(User user:users) {
             user.getSex(); //男:male 女:female
             user.getName();
             user.getBirthday();
             user.getPicSmall(); //大頭照圖片網址
         } 
        


        2009年12月22日 星期二

        建立Facebook應用程式 Java API (4) - 發佈通知及張貼訊息到塗鴨牆

        利用Facebook API可以發佈通知給使用者的朋友,也可以貼訊息到使用者的塗鴨牆上。

        1. 發佈通知給使用者的朋友
        List reciver = new ArrayList();
        reciver.add(friendsUID);
        client.notifications_send(reciver, "msg"); 
        

        2.  貼訊息到使用者的塗鴨牆上
        // 貼訊息到使用者的塗鴨牆上(每個使用者一日限十篇)
        // 設定張貼的訊息
        Attachment attachment = new Attachment();
        attachment.setName("Name");
        //設定Name的超連結位址
        attachment.setHref("http://www.google.com.tw/");
        attachment.setCaption("caption");
        attachment.setDescription("yahoo description\ntest");
        
        //加入圖片
        AttachmentMediaImage attachmentMediaImage = new AttachmentMediaImage("http://www.google.com.tw/intl/en_com/images/logo_plain.png", "http://www.google.com");
        attachment.setMedia(attachmentMediaImage);
        
        //ActionLink是會出現在'留言 · 讚'後面的超連結(只有發佈到自己的塗鴨牆才會出現)
        List actionLiks = new ArrayList();
        BundleActionLink bundleActionLink = new BundleActionLink("yahoo", "http://tw.yahoo.com");
        actionLiks.add(bundleActionLink);
        
        //發佈到塗鴨牆
        client.stream_publish("This is a Java API Test.", attachment, actionLiks, null, null);
        


        2009年12月20日 星期日

        建立Facebook應用程式 Java API (3) - 利用API取得使用者相關資訊

        透過Facebook API可以取得使用者Profile內的資料(除了Email)、使用者所有朋友的Profile資料(如:名子、性別、圖片…)以及和應用程式相關的資料。

        String sessionKey = request.getParameter("fb_sig_session_key");
         FacebookJaxbRestClient client = new FacebookJaxbRestClient(apiKey, secret, sessionKey);
        
          //使用者UID
          Long userId = client.users_getLoggedInUser();
        
         //使用者的所有friends
          List friendsUID = client.friends_get().getUid();
        
          //使用者friend的分類
          List friendLists = client.friends_getLists().getFriendlist();
        
          //有使用此應用程式的friends
          List appUsers = client.friends_getAppUsers().getUid();
        
          //檢查應用程式是否有發佈訊息到使用者塗鴨牆的權限(也可利用此方法來檢查其它權限)
          boolean publish  = client.users_hasAppPermission(Permission.PUBLISH_STREAM);
        
          //使用者授權的連結
          String url = Permission.authorizationUrl(apiKey, Permission.PUBLISH_STREAM); 
        


        2009年12月15日 星期二

        建立Facebook應用程式 Java API (2) - 開始使用Java API

        1. 下載Java API

        2. 將所需的Jar檔匯入

        3. 建立一個Servlet(此Servlet的位址需是Canvas Callback URL)

        4. 撰寫此Servlet
             a. 藉由fb_sig_session_key參數來判斷該FB使用者是否有加入此應用程式
                    String sessionKey = request.getParameter("fb_sig_session_key");
             b. 若sessionKey為null則表示該FB使用者未加入此應用程式,則將網頁重新導向到要求允許存取頁面
                   <script type='text/javascript'>
                        parent.location.href='http://www.facebook.com/login.php?v=1.0&api_key=[your_api_key]&
                       next=[Canvas Callback URL]&canvas=';
                    </script>
             c. 若sessionKey不為null,則可使用api_key, secret, seessionKey來取得FacebookJaxbRestClient
                     FacebookJaxbRestClient client = new FacebookJaxbRestClient(api_key, secret, seessionKey);


        2009年12月13日 星期日

        建立Facebook應用程式 Java API (1) - 申請應用程式

        1. 加入開發人員應用程式
         
        2. 建立一個新的應用程式

        3.  輸入應用程式名稱

        4.  記住自己應用程式的ID, API key, Secret

        5. 選擇畫布(Canvas),並輸入你的Canvas url(需小寫)及你的server的url

        6.  應用程式的細節