Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using Prime31;
- using System.Collections.Generic;
- namespace HutongGames.PlayMaker.Actions
- {
- [ActionCategory("Social/Facebook")]
- [Tooltip("Logs a user into Facebook with write permissions. You can see there facebook info and post on their wall")]
- public class RequestWrite : FsmStateAction
- {
- [RequiredField]
- [Tooltip("What event to call on success")]
- public FsmEvent successEvent;
- [Tooltip("What event to call on error")]
- public FsmEvent errorEvent;
- [Tooltip("Already Logged In")]
- public FsmEvent alreadyLoggedEvent;
- public override void OnExit() {
- #if UNITY_IOS
- FacebookManager.reauthorizationFailedEvent -= reauthorizationFailedEvent;
- FacebookManager.reauthorizationSucceededEvent -= reauthorizationSucceededEvent;
- #endif
- }
- public override void OnEnter()
- {
- #if UNITY_IOS
- FacebookManager.reauthorizationFailedEvent += reauthorizationFailedEvent;
- FacebookManager.reauthorizationSucceededEvent += reauthorizationSucceededEvent;
- Debug.Log ("Logging into Facebook with write permissions");
- var hasWritePermissions = FsmVariables.GlobalVariables.GetFsmBool("hasWritePermissions").Value;
- var hasReadPermissions = FsmVariables.GlobalVariables.GetFsmBool("hasReadPermissions").Value;
- if(!hasReadPermissions) {
- Debug.LogWarning("You must have read permissions to call this function");
- Finish();
- return;
- }
- if(hasWritePermissions == false)
- {
- Debug.Log ("Requesting write permissions");
- var permissions = new string[] { "publish_actions", "publish_stream" };
- FacebookBinding.reauthorizeWithPublishPermissions( permissions, FacebookSessionDefaultAudience.Everyone);
- }
- else {
- Debug.Log ("Already hass write permissions");
- Fsm.Event(alreadyLoggedEvent);
- }
- #endif
- #if UNITY_EDITOR
- Finish();
- #endif
- }
- #if UNITY_IOS
- void reauthorizationSucceededEvent()
- {
- Debug.Log ("reauthorizationSucceededEvent");
- var globalVariables = FsmVariables.GlobalVariables;
- var hasWrite = globalVariables.GetFsmBool("hasWritePermissions");
- hasWrite.Value = true;
- Fsm.Event(successEvent);
- Finish();
- }
- void reauthorizationFailedEvent( P31Error error )
- {
- Debug.Log ("loginFailedEvent write");
- var globalVariables = FsmVariables.GlobalVariables;
- var hasWrite = globalVariables.GetFsmBool("hasWritePermissions");
- hasWrite.Value = false;
- var fsmError = globalVariables.GetFsmString("SocialError");
- fsmError.Value = error.ToString();
- Fsm.Event(errorEvent);
- Finish();
- }
- #endif
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement