internal void ResolveProfileImageUrl(string id, FbProfileImageSize size, Action <string> callback)
        {
            var request = new FbRequestBuilder($"/{id}?fields=picture.type({size.ToString().ToLower()})");

            Fb.API(request.RequestString, HttpMethod.GET,
                   graphResult =>
            {
                var result = new FbGetProfileImageUrlResult(graphResult);
                callback.Invoke(result.Url);
            });
        }
        /// <summary>
        /// Generates user profile image URL
        /// </summary>
        /// <param name="size">Requested profile image size.</param>
        /// <param name="callback">Request callback.</param>
        public void GetProfileUrl(FbProfileImageSize size, Action <string> callback)
        {
            if (m_PicturesUrls.ContainsKey(size))
            {
                callback.Invoke(m_PicturesUrls[size]);
                return;
            }

            Fb.FbGraphApi.ResolveProfileImageUrl(Id, size, (url) =>
            {
                m_PicturesUrls.Add(size, url);
                callback.Invoke(url);
            });
        }
 /// <summary>
 /// Download user profile image of a given size
 /// </summary>
 /// <param name="size">Requested profile image size</param>
 /// <param name="callback">Callback with user Texture2D profile image</param>
 public void GetProfileImage(FbProfileImageSize size, Action <Texture2D> callback)
 {
     GetProfileUrl(size, url => { CachedWebRequest.GetTexture2D(url, callback); });
 }