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

2010年3月2日 星期二

建立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属性)










建立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>


建立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(); //大头照图片网址
 } 


2010年2月25日 星期四

建立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);


建立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); 


建立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);


建立Facebook应用程式 Java API (1) - 申请应用程式

1. 加入开发人员应用程式
 
2. 建立一个新的应用程式

3.  输入应用程式名称

4.  记住自己应用程式的ID, API key, Secret

5. 选择画布(Canvas),并输入你的Canvas url(需小写)及你的server的url

6.  应用程式的细节