示例#1
0
 private void UserLookupCallback(APICallbackArgs acArgs)
 {
     //make a dummy status, give it the user object we have
     m_stStatusObj.RetweetedStatus      = new Status(new Json.JsonNode());
     m_stStatusObj.RetweetedStatus.User = ((List <User>)acArgs.ResponseObject)[0];
     AsyncContentManager.GetManager().RequestImage(m_stStatusObj.RetweetedStatus.User["profile_image_url"].ToString(), AvatarCallback);
 }
 protected void CallbackCheckSucceeded(string sMessage, string sTitle, APICallbackArgs acArgs)
 {
     if (!acArgs.Succeeded)
     {
         MessageBox.Show(sMessage + "\n\nTwitter said: \"" + acArgs.ErrorMessage + "\"", sTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
示例#3
0
        private void GetRequestTokenCallback(APICallbackArgs acArgs)
        {
            if (RequestTokenReceived != null)
            {
                OAuthResponseObject oroResponse = (OAuthResponseObject)acArgs.ResponseObject;

                if (acArgs.Succeeded)
                {
                    if (oroResponse.Response.ContainsKey("oauth_token") && oroResponse.Response.ContainsKey("oauth_token_secret"))
                    {
                        oroResponse.Credentials.Token       = oroResponse.Response["oauth_token"];
                        oroResponse.Credentials.TokenSecret = oroResponse.Response["oauth_token_secret"];
                        APIReturn.SynchronizeInvoke(RequestTokenReceived, new object[4] {
                            this, true, "", oroResponse.Credentials
                        });
                    }
                    else
                    {
                        APIReturn.SynchronizeInvoke(RequestTokenReceived, new object[4] {
                            this, false, "An error occurred retrieving a request token from Twitter.  Please try again.", null
                        });
                    }
                }
                else
                {
                    APIReturn.SynchronizeInvoke(RequestTokenReceived, new object[4] {
                        this, false, acArgs.ErrorMessage, null
                    });
                }
            }
        }
示例#4
0
        private void GetAccessTokenCallback(APICallbackArgs acArgs)
        {
            if (AccessTokenReceived != null)
            {
                OAuthResponseObject oroResponse = (OAuthResponseObject)acArgs.ResponseObject;

                if (acArgs.Succeeded)
                {
                    if (oroResponse.Response.ContainsKey("oauth_token") && oroResponse.Response.ContainsKey("oauth_token_secret"))
                    {
                        oroResponse.Credentials.Token          = oroResponse.Response["oauth_token"];
                        oroResponse.Credentials.TokenSecret    = oroResponse.Response["oauth_token_secret"];
                        oroResponse.Credentials.ClientUsername = oroResponse.Response["screen_name"];
                        APIReturn.SynchronizeInvoke(AccessTokenReceived, new object[4] {
                            this, true, "", oroResponse.Credentials
                        });
                    }
                    else
                    {
                        APIReturn.SynchronizeInvoke(AccessTokenReceived, new object[4] {
                            this, false, "An error occurred authenticating with the pin you supplied.  Please try again with the correct pin.", null
                        });
                    }
                }
                else
                {
                    APIReturn.SynchronizeInvoke(AccessTokenReceived, new object[4] {
                        this, false, acArgs.ErrorMessage, null
                    });
                }
            }
        }
示例#5
0
        private void MentionsCallback(APICallbackArgs acArgs)
        {
            UserTimeline utInitial = (UserTimeline)acArgs.ResponseObject;

            for (int i = utInitial.Statuses.Count - 1; i >= 0; i--)
                APIReturn.SynchronizeInvoke(Receive, new object[] { this, new JsonDocument(utInitial.Statuses[i].Object), ReceiveType.Reply });

            EstablishStream();
        }
示例#6
0
        private void HomeTimelineCallback(APICallbackArgs acArgs)
        {
            UserTimeline utInitial = (UserTimeline)acArgs.ResponseObject;

            for (int i = utInitial.Statuses.Count - 1; i >= 0; i--)
                APIReturn.SynchronizeInvoke(Receive, new object[] { this, new JsonDocument(utInitial.Statuses[i].Object), ReceiveType.Tweet });

            m_bscAPI.GetMentions(MentionsCallback, null);
        }
示例#7
0
        private void MentionsCallback(APICallbackArgs acArgs)
        {
            UserTimeline utInitial = (UserTimeline)acArgs.ResponseObject;

            for (int i = utInitial.Statuses.Count - 1; i >= 0; i--)
            {
                APIReturn.SynchronizeInvoke(Receive, new object[] { this, new JsonDocument(utInitial.Statuses[i].Object), ReceiveType.Reply });
            }

            EstablishStream();
        }
示例#8
0
        private void HomeTimelineCallback(APICallbackArgs acArgs)
        {
            UserTimeline utInitial = (UserTimeline)acArgs.ResponseObject;

            for (int i = utInitial.Statuses.Count - 1; i >= 0; i--)
            {
                APIReturn.SynchronizeInvoke(Receive, new object[] { this, new JsonDocument(utInitial.Statuses[i].Object), ReceiveType.Tweet });
            }

            m_bscAPI.GetMentions(MentionsCallback, null);
        }
示例#9
0
        private void GetUserObjectCallback(APICallbackArgs acArgs)
        {
            List <User> luResponseList = (List <User>)acArgs.ResponseObject;

            if (luResponseList.Count > 0)
            {
                m_uUserObject = luResponseList[0];

                if (UserObjectReceived != null)
                {
                    APIReturn.SynchronizeInvoke(UserObjectReceived, this, EventArgs.Empty);
                }
            }
        }
示例#10
0
        private void DoRequestCallback(RestRequest rrqRequest, RestResponse rrsResponse, object objUserState)
        {
            RestResponseHash rrhResponse   = new RestResponseHash(rrsResponse);
            APIReturn        aprReturn     = (APIReturn)objUserState;
            OAuthCredentials oaCredentials = (OAuthCredentials)aprReturn.CallbackArg;
            string           sErrorMessage = "";

            if (rrsResponse.InnerException != null)
            {
                sErrorMessage = rrsResponse.InnerException.Message;
            }

            APICallbackArgs acArgs = new APICallbackArgs(rrsResponse.StatusCode == HttpStatusCode.OK, sErrorMessage, new OAuthResponseObject(rrhResponse, oaCredentials));

            aprReturn.SynchronizeInvoke(new object[] { acArgs });
        }
示例#11
0
        protected void DoRequestCallback(RestRequest rrqRequest, RestResponse rrsResponse, object objUserState)
        {
            try
            {
                //StreamWriter swWriter = new StreamWriter("C:/Users/le grand fromage/Desktop/tweets.json", true, Encoding.UTF8);
                //StreamReader srReader = new StreamReader(rrsResponse.ContentStream, Encoding.UTF8);
                //swWriter.WriteLine(srReader.ReadToEnd());
                //swWriter.Close();
                //return;

                JsonDocument    jsDoc         = JsonParser.GetParser().ParseStream(new StreamReader(rrsResponse.ContentStream, Encoding.UTF8));
                APIReturn       aprReturn     = (APIReturn)objUserState;
                object          objToReturn   = null;
                string          sErrorMessage = "";
                APICallbackArgs acArgs;

                if (jsDoc.Root.IsNode() && jsDoc.Root.ToNode().ContainsKey("error"))
                {
                    sErrorMessage = jsDoc.Root.ToNode()["error"].ToString();
                }
                else if (rrsResponse.InnerException != null)
                {
                    sErrorMessage = rrsResponse.InnerException.Message;
                }

                if (aprReturn.ReturnType != null)
                {
                    if (jsDoc.Root.IsList())
                    {
                        //if the return type is a generic list...
                        if (aprReturn.ReturnType.Name == "List`1")
                        {
                            //get an instance of the list<generic> that will have generics added to it and eventually be returned via the callback
                            //get the type of the generic (because we'll need to make specific instances of him later)
                            objToReturn = System.Activator.CreateInstance(aprReturn.ReturnType);
                            Type tListObjType = aprReturn.ReturnType.GetGenericArguments()[0];

                            //dynamically invoke the Add() method of the list
                            //what's being added: a newly minted instance of the generic class plus data via the constructor
                            foreach (JsonObject joCur in jsDoc.Root.ToList())
                            {
                                aprReturn.ReturnType.GetMethod("Add").Invoke(objToReturn, new Object[] { System.Activator.CreateInstance(tListObjType, joCur.ToNode()) });
                            }
                        }
                        else
                        {
                            objToReturn = System.Activator.CreateInstance(aprReturn.ReturnType, jsDoc.Root.ToList());
                        }
                    }
                    else if (jsDoc.Root.IsNode())
                    {
                        objToReturn = System.Activator.CreateInstance(aprReturn.ReturnType, jsDoc.Root.ToNode());
                    }
                }

                acArgs = new APICallbackArgs(rrsResponse.StatusCode == HttpStatusCode.OK, sErrorMessage, objToReturn);
                aprReturn.SynchronizeInvoke(new object[] { acArgs });  //synchronously invoke the return callback
            }
            catch (Exception e)
            {
                MessageBox.Show("An unknown Twitter API error has occurred (basic).", "API Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
示例#12
0
 private void FavoriteDestroyCallback(APICallbackArgs acArgs)
 {
     CallbackCheckSucceeded("There was an error un-favoriting that tweet.", "Un-favorite Error", acArgs);
 }
示例#13
0
 private void FavoriteCreateCallback(APICallbackArgs acArgs)
 {
     CallbackCheckSucceeded("There was an error favoriting that tweet.", "Favorite Error", acArgs);
 }
示例#14
0
 private void RetweetCallback(APICallbackArgs acArgs)
 {
     CallbackCheckSucceeded("There was an error posting your retweet.", "Retweet Error", acArgs);
 }
示例#15
0
 private void UpdateStatusCallback(APICallbackArgs acArgs)
 {
     CallbackCheckSucceeded("There was an error posting your tweet.", "Tweet Error", acArgs);
 }
示例#16
0
        protected void DoRequestCallback(RestRequest rrqRequest, RestResponse rrsResponse, object objUserState)
        {
            try
            {
                //StreamWriter swWriter = new StreamWriter("C:/Users/le grand fromage/Desktop/tweets.json", true, Encoding.UTF8);
                //StreamReader srReader = new StreamReader(rrsResponse.ContentStream, Encoding.UTF8);
                //swWriter.WriteLine(srReader.ReadToEnd());
                //swWriter.Close();
                //return;

                JsonDocument jsDoc = JsonParser.GetParser().ParseStream(new StreamReader(rrsResponse.ContentStream, Encoding.UTF8));
                APIReturn aprReturn = (APIReturn)objUserState;
                object objToReturn = null;
                string sErrorMessage = "";
                APICallbackArgs acArgs;

                if (jsDoc.Root.IsNode() && jsDoc.Root.ToNode().ContainsKey("error"))
                    sErrorMessage = jsDoc.Root.ToNode()["error"].ToString();
                else if (rrsResponse.InnerException != null)
                    sErrorMessage = rrsResponse.InnerException.Message;

                if (aprReturn.ReturnType != null)
                {
                    if (jsDoc.Root.IsList())
                    {
                        //if the return type is a generic list...
                        if (aprReturn.ReturnType.Name == "List`1")
                        {
                            //get an instance of the list<generic> that will have generics added to it and eventually be returned via the callback
                            //get the type of the generic (because we'll need to make specific instances of him later)
                            objToReturn = System.Activator.CreateInstance(aprReturn.ReturnType);
                            Type tListObjType = aprReturn.ReturnType.GetGenericArguments()[0];

                            //dynamically invoke the Add() method of the list
                            //what's being added: a newly minted instance of the generic class plus data via the constructor
                            foreach (JsonObject joCur in jsDoc.Root.ToList())
                                aprReturn.ReturnType.GetMethod("Add").Invoke(objToReturn, new Object[] { System.Activator.CreateInstance(tListObjType, joCur.ToNode()) });
                        }
                        else
                            objToReturn = System.Activator.CreateInstance(aprReturn.ReturnType, jsDoc.Root.ToList());
                    }
                    else if (jsDoc.Root.IsNode())
                        objToReturn = System.Activator.CreateInstance(aprReturn.ReturnType, jsDoc.Root.ToNode());
                }

                acArgs = new APICallbackArgs(rrsResponse.StatusCode == HttpStatusCode.OK, sErrorMessage, objToReturn);
                aprReturn.SynchronizeInvoke(new object[] { acArgs });  //synchronously invoke the return callback
            }
            catch(Exception e)
            {
                MessageBox.Show("An unknown Twitter API error has occurred (basic).", "API Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }