/Samples/Facebook/Main.hx

https://github.com/ralcr/sdk.ralcr · Haxe · 128 lines · 102 code · 18 blank · 8 comment · 7 complexity · d27381891f166d5e2a830693b65244e3 MD5 · raw file

  1. import flash.display.Sprite;
  2. import flash.events.MouseEvent;
  3. import haxe.Json;
  4. import FacebookTools;
  5. class Main extends Sprite {
  6. static var APP_ID = "249854931808870"; //Place your application id here
  7. var fb :Facebook;
  8. public static function main () {
  9. flash.Lib.current.addChild ( new Main());
  10. }
  11. public function new () {
  12. haxe.Firebug.redirectTraces();
  13. super();
  14. fb = Facebook.init (APP_ID, onInit);
  15. var s = new SKSimpleButtonWithText ("Logout", null);
  16. var b = new RCButton (20, 70, s);
  17. b.onClick = logoutHandler;
  18. b.init();
  19. addChild ( b.layer );
  20. var s = new SKSimpleButtonWithText ("Login", null);
  21. var b = new RCButton (20, 50, s);
  22. b.onClick = loginHandler;
  23. b.init();
  24. addChild ( b.layer );
  25. var s = new SKSimpleButtonWithText ("GetFriends", null);
  26. var b = new RCButton (20, 100, s);
  27. b.onClick = getFriendsHandler;
  28. b.init();
  29. addChild ( b.layer );
  30. var s = new SKSimpleButtonWithText ("GetFriendWithId", null);
  31. var b = new RCButton (20, 120, s);
  32. b.onClick = getFriendHandler;
  33. b.init();
  34. addChild ( b.layer );
  35. }
  36. function onInit (result:Dynamic, fail:Dynamic) {
  37. trace("onInit");
  38. trace(result);trace(fail);
  39. }
  40. function loginHandler(){
  41. trace("try login");
  42. var opts:Dynamic = {scope:"publish_stream, user_photos"};
  43. fb.login (onLogin, opts);
  44. }
  45. function logoutHandler(){
  46. trace("try logout");
  47. fb.logout (onLogout);
  48. }
  49. function onLogin (result:Dynamic, fail:Dynamic){
  50. //trace(result);trace(fail);
  51. //if (result != null)
  52. }
  53. function onLogout(success:Bool){
  54. trace(success);
  55. }
  56. function getFriendsHandler(){
  57. FacebookTools.requestFriends( friendsHandler );
  58. }
  59. function getFriendHandler(){
  60. FacebookTools.requestProfilePictureForUserId ("245700020", friendHandler);// Emma
  61. }
  62. function handleReqTypeChange(event:MouseEvent){
  63. /* if (getRadio.selected) {
  64. paramsLabel.visible = paramsInput.visible = false;
  65. } else {
  66. paramsLabel.visible = paramsInput.visible = true; //only POST request types have params
  67. }*/
  68. }
  69. function friendsHandler (result:Dynamic, fail:Dynamic) {
  70. if (result != null) {
  71. var friends :Array<FacebookFriend> = result;
  72. trace(friends.length);
  73. var self = this;
  74. var i = 0;
  75. for (fr in friends) {
  76. trace(i+", "+fr);
  77. //continue;
  78. if (i<10) {
  79. FacebookTools.requestProfilePictureForUserId (fr.id, function(result:Dynamic, fail:Dynamic) {
  80. trace("ready"+result.url+i);
  81. addChild ( new RCImage(Math.random()*600, 0, result.url).layer );
  82. });
  83. }
  84. else break;
  85. i++;
  86. }
  87. }
  88. }
  89. function friendHandler (result:Dynamic, fail:Dynamic) {
  90. trace(result);trace(fail);
  91. addChild ( new RCImage(350, 100, result.url).layer );
  92. }
  93. function handleUIClick (event:MouseEvent){
  94. var method:String = "";
  95. if (method.length > 0) {
  96. var data:Dynamic = {};
  97. try {
  98. data = Json.parse ( "" );
  99. } catch (e:Dynamic) {
  100. trace("\n\nERROR DECODING JSON: " + e.message);
  101. }
  102. fb.ui (method, data, onUICallback);
  103. } else {
  104. trace("\n\nPlease specify dialog type");
  105. }
  106. }
  107. function onUICallback(result:Dynamic){
  108. trace(result);
  109. }
  110. }