/// <summary>
 /// Make an async request to the Facebook Graph API with the given string parameters.
 /// </summary>
 /// <param name="graphPath">Path to the resource in the Facebook graph.</param>
 /// <param name="parameters">key-value string parameters.</param>
 /// <param name="addAccessToken">Add whether to set the access token or not.</param>
 /// <param name="callback">
 /// The callback.
 /// </param>
 ///  /// <remarks>
 /// See http://developers.facebook.com/docs/api
 ///
 /// Note that this method is asynchronous.
 /// This method will not block waiting for a network response.
 ///
 /// To fetch data about the currently logged authenticated user,
 /// provide "/me", which will fetch http://graph.facebook.com/me
 ///
 /// For parameters:
 ///     key-value string parameters, e.g. the path "search" with
 /// parameters "q" : "facebook" would produce a query for the
 /// following graph resource:
 /// https://graph.facebook.com/search?q=facebook
 /// </remarks>
 public void GetAsync(string graphPath, IDictionary <string, string> parameters, bool addAccessToken, Action <FacebookAsyncResult> callback)
 {
     GraphContext.ExecuteAsync(
         new FacebookGraphRestSharpMessage(this)
     {
         Resource = graphPath, Parameters = parameters, AddAccessToken = addAccessToken
     },
         Method.GET, callback);
 }
        /// <summary>
        /// Makes an asynchronous request to the Facebook Graph API to delete a graph object.
        /// </summary>
        /// <param name="graphPath">
        /// Path to the resource in the Facebook graph.
        /// </param>
        /// <param name="parameters">
        /// key-value string parameters.
        /// </param>
        /// <param name="callback">
        /// The callback.
        /// </param>
        /// <remarks>
        /// See http://developers.facebook.com/docs/api
        ///
        /// Note that this method is asynchronous.
        /// This method will not block waiting for a network response.
        ///
        /// To delete objects in the graph,
        /// provide "/id", which will delete http://graph.facebook.com/id
        ///
        /// You can delete a like by providing /POST_ID/likes (since likes don't have an ID).
        /// </remarks>
        public void DeleteAsync(string graphPath, IDictionary <string, string> parameters, Action <FacebookAsyncResult> callback)
        {
            if (parameters == null)
            {
                parameters = new Dictionary <string, string>();
            }
            parameters.Add("method", "DELETE"); // silverlight doesn't seem to support DELETE method and fb allows to use this alternative

            GraphContext.ExecuteAsync(
                new FacebookGraphRestSharpMessage(this)
            {
                Resource = graphPath, Parameters = parameters, AddAccessToken = true
            },
                Method.POST, callback);
        }