using UnityEngine; using System.Collections; using System.Collections.Generic; using Facebook.Unity; using DashGame; public class FaceBookPlatform : ISocialPlatform { public SocialUser me; public SocialUser[] friends; private CallBackUtil.BoolCallBack initCallBack; public void Init(CallBackUtil.BoolCallBack callBack) { initCallBack = callBack; if (!FB.IsInitialized) { // Initialize the Facebook SDK FB.Init(InitCallback); } else { // Already initialized, signal an app activation App Event InitCallback(); } } private void InitCallback () { if (FB.IsInitialized) { // Signal an app activation App Event FB.ActivateApp(); } else { Debug.Log("Failed to Initialize the Facebook SDK"); } if(initCallBack != null) { initCallBack (FB.IsInitialized); initCallBack = null; } } public bool IsInitialized() { return FB.IsInitialized; } private CallBackUtil.BoolCallBack loginCallBack; public void Login(CallBackUtil.BoolCallBack callBack) { loginCallBack = callBack; var perms = new List(){"public_profile", "email", "user_friends"}; FB.LogInWithReadPermissions(perms, AuthCallback); } private void AuthCallback (ILoginResult result) { if (FB.IsLoggedIn) { // AccessToken class will have session details AccessToken aToken = Facebook.Unity.AccessToken.CurrentAccessToken; // Print current access token's User ID Debug.Log(aToken.UserId); // Print current access token's granted permissions foreach (string perm in aToken.Permissions) { Debug.Log(perm); } } else { Debug.Log("User cancelled login"); } if (loginCallBack != null) { loginCallBack (FB.IsLoggedIn); loginCallBack = null; } } public bool IsLoggedIn() { return FB.IsLoggedIn; } private CallBackUtil.BoolCallBack friendsCallBack; public void RequestFriends(CallBackUtil.BoolCallBack callBack) { this.friendsCallBack = callBack; if (friends == null) { FB.API ("/me/friends", HttpMethod.POST, RequestFriendsCallBack); } else { dealFriendResult (true); } } private void RequestFriendsCallBack(IGraphResult result) { } private void dealFriendResult(bool successed) { if (friendsCallBack != null) { friendsCallBack (successed); friendsCallBack = null; } } public SocialUser[] GetFriends() { return friends; } public SocialUser GetMe() { return me; } public void Share (string contentURL, string contentTitle, string contentDescription, string photoURL, CallBackUtil.BoolCallBack callBack) { } public string IconPath() { return "Textures/SocialIcon/facebook"; } }