public static ScriptResponse setupErrorResponse(string responseCode, string message, string token = "")
        {
            ScriptResponse sr = new ScriptResponse();

            sr.ResponseCode = responseCode;
            sr.Message      = message;
            sr.token        = token;
            return(sr);
        }
        private async void PostUserData(Dictionary<string, string> param)
        {
            if (busy)
                sendBusyEvent();

            busy = true;

            try
            {
                string path = "/me/feed";

                dynamic parameters = new ExpandoObject();
                if (param.Keys.Contains<string>("name")) { parameters.name = param["name"]; }
                if (param.Keys.Contains<string>("caption")) { parameters.caption = param["caption"]; }
                if (param.Keys.Contains<string>("link")) { parameters.link = param["link"]; }
                if (param.Keys.Contains<string>("picture")) { parameters.picture = param["picture"]; }
                if (param.Keys.Contains<string>("message")) { parameters.message = param["message"]; }
                if (param.Keys.Contains<string>("path")) { path = param["path"]; }

                dynamic result = await _fb.PostTaskAsync(path, parameters);
                _lastMessageId = result.id;
                
                ScriptResponse sr = new ScriptResponse { Message = "Facebook Post Successful", ResponseCode = "" };
                string js = "(function(){ AppMobi.facebook.internal.handleResponse('dialog.complete',true," + sr.ToJson() + ")})();";
                InjectJS(js);
            }
            catch (FacebookApiException ex)
            {
                // handle error message
                if (ex.ErrorCode == 2500)
                {
                    // user not logged in.
                    ScriptResponse sr = ErrorHandler.setupErrorResponse(ErrorsEnum.E000201);
                    string js = string.Format("javascript: var e = document.createEvent('Events');e.initEvent('appMobi.facebook.request.response',true,true);e.success=false;e.error='{0}';e.raw='';e.data={{}};document.dispatchEvent(e);", sr.Message);
                    InjectJS(js);
                }
                else
                {
                    ScriptResponse sr = ErrorHandler.setupErrorResponse(ErrorsEnum.E000200);
                    //ScriptResponse sr = new ScriptResponse { Message = "Facebook Post Failed", ResponseCode = "" };
                    string js = string.Format("javascript: var e = document.createEvent('Events');e.initEvent('appMobi.facebook.request.response',true,true);e.success=false;e.error='{0}';e.raw='';e.data={{}};document.dispatchEvent(e);", sr.Message);
                    InjectJS(js);
                }
            }
            finally
            { busy = false; }
        }