public override void Do(ActionArgs e) { Begin(e); ActionFacebookLoginArgs arg = e as ActionFacebookLoginArgs; if (precheckToDo(e)) { var dispatcher = ActionHelper.getCurrentUIThread(); dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { Authenticate(arg); }); /*if (!FacebookClient.Instance.IsUserLogedin()) { * var dispatcher = ActionHelper.getCurrentUIThread(); * dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => * { * Authenticate(arg); * * }); * } else { * arg.IsCancelByLogedin = true; * Done(arg); * }*/ } else { Cancel(e); } }
static public void login(ServerStream stream, Actions.DelegateBegin onBegin, Actions.DelegateDone onDone, Actions.DelegateCancel onCancel) { Actions.ActionFacebookLoginArgs arg = new Actions.ActionFacebookLoginArgs(AppObject.RootLayout); Actions.ActionFacebookLogin action_fblogin = new Actions.ActionFacebookLogin(); _stream_wating.Add(action_fblogin, stream); try { action_fblogin.OnBegin += onBegin; action_fblogin.OnDone += action_fblogin_stream_OnDone; action_fblogin.OnDone += onDone; action_fblogin.OnCancel += action_fblogin_stream_OnCancel; action_fblogin.OnCancel += onCancel; stream.Status = (int)ServerStreamStatus.STREAM_STATUS_REQUESTING; AppObject.PopupOfAction.Add(new Actions.ActionArgLinker(action_fblogin, arg)); ////ApplicationInfomation.onPopupOn(); action_fblogin.Do(arg); } catch (Exception ex) { stream.Status = (int)ServerStreamStatus.STREAM_STATUS_ERROR; } }
public override void Cancel(ActionArgs e) { ActionFacebookLoginArgs arg = e as ActionFacebookLoginArgs; if (arg != null) { try { arg.Result = null; } catch (Exception ex) { //throw ex; } } else { Exception ex = new Exception("Facebook login dialog error"); //throw ex; } base.Cancel(e); }
static private void action_fblogin_stream_OnDone(object sender, Actions.ActionArgs e) { try { Actions.ActionFacebookLoginArgs fbarg = e as Actions.ActionFacebookLoginArgs; ActionFacebookLoginArgs arg = e as ActionFacebookLoginArgs; foreach (ActionArgLinker link in AppObject.PopupOfAction) { if (link.AttachArg == arg) { AppObject.PopupOfAction.Remove(link); break; } } if (fbarg != null && (fbarg.IsCancelByLogedin || (fbarg.Result != null && fbarg.Result.IsSuccess))) { if (fbarg.IsCancelByLogedin) { ServerStream svstream = _stream_wating[(Actions.Action)sender]; svstream.Status = (int)ServerStreamStatus.STREAM_STATUS_RESPONSED; ////ApplicationInfomation.onPopupOff(); } else { PineShap.FacebookUtils.FacebookClient.Instance.Token = fbarg.Result.Token; PineShap.FacebookUtils.FacebookClient.Instance.TokenExprite = fbarg.Result.TokenExprite; PineShap.FacebookUtils.FacebookClient.Instance.SaveUserData(); ServerStream svstream = _stream_wating[(Actions.Action)sender]; action_fbinfo_stream_do(svstream); } } else { ServerStream svstream = _stream_wating[(Actions.Action)sender]; svstream.Status = (int)ServerStreamStatus.STREAM_STATUS_ERROR; _stream_wating.Remove((Actions.Action)sender); ////ApplicationInfomation.onPopupOff(); } } catch (Exception ex) { } }
private async Task Authenticate(ActionFacebookLoginArgs arg) { string message = String.Empty; try { session = await FacebookManager.SessionClient.LoginAsync("basic_info,publish_actions,user_about_me,read_stream,offline_access"); string state = session.State; if (session.AccessToken.Length > 0) { state = session.State; FacebookManager.setToken(session.AccessToken); arg.Result = new LoginFacebookDialogCompleteArgs(true, session.AccessToken, session.Expires.ToString()); Done(arg); } } catch (InvalidOperationException e) { Cancel(arg); } }
public override bool precheckToDo(ActionArgs e) { ActionFacebookLoginArgs arg = e as ActionFacebookLoginArgs; return(arg.ParentLayout != null); }