getting user profile picture using facebook c# sdk from codeplex

前端 未结 5 1193
旧时难觅i
旧时难觅i 2021-01-04 23:25

I am using facebook C# sdk from codeplex and trying to download user\'s profile picture.

I know I can get this from:

http://graph.facebook.com/UID/picture?t

相关标签:
5条回答
  • 2021-01-04 23:38

    You don't actually need the second URL. The second URL is just a caching url. Just use the graph.facebook.com/username/picture?type=large url. The longer caching url could change so it is not a reliable source of the image anyway.

    0 讨论(0)
  • 2021-01-04 23:49

    Here it goes it works well i am using it

    Function is

      private Image getUrlImage(string url)
            {
                WebResponse result = null;
                Image  rImage = null;
                try
                {
                    WebRequest request = WebRequest.Create(url);
                    result = request.GetResponse();
                    Stream stream = result.GetResponseStream();
                    BinaryReader br = new BinaryReader(stream);
                    byte[] rBytes = br.ReadBytes(1000000);
                    br.Close();
                    result.Close();
                    MemoryStream imageStream = new MemoryStream(rBytes, 0, rBytes.Length);
                    imageStream.Write(rBytes, 0, rBytes.Length);
                    rImage = Image.FromStream(imageStream, true);
                    imageStream.Close();
                }
                catch (Exception c)
                {
                    //MessageBox.Show(c.Message);
                }
                finally
                {
                    if (result != null) result.Close();
                }
                return rImage;
    
            }
    

    and its call is

    profilePic = getUrlImage("https://graph.facebook.com/" + me.id + "/picture");
    
    0 讨论(0)
  • 2021-01-04 23:55

    You can get the picture URL through this : graph.facebook.com/username?fields=picture

    The facebook C# sdk from codeplex (v.5.0.3) throws an exception when trying to do something like this: fb.GetAsync("me/picture", get_data_callback); I guess GetAsync doesn't support to retrieve the (binary) image data.

    0 讨论(0)
  • 2021-01-04 23:58

    You could let the browser get the image for you using the graph api url - graph.facebook.com/UID/picture?type=large or use something like the method below to get the cached url

        public static string GetPictureUrl(string faceBookId)
        {
            WebResponse response = null;
            string pictureUrl = string.Empty;
            try
            {
                WebRequest request = WebRequest.Create(string.Format("https://graph.facebook.com/{0}/picture", faceBookId));
                response = request.GetResponse();
                pictureUrl = response.ResponseUri.ToString();
            }
            catch (Exception ex)
            {
                //? handle
            }
            finally
            {
                if (response != null) response.Close();
            }
            return pictureUrl;
        }
    
    0 讨论(0)
  • 2021-01-05 00:01

    You can get the urls for the user's picture by using FQL

    dim app as new facebookclient(token)
    dim obj as jsonobject = app.get("me/")
    dim fql as string = "Select pic_small, pic_big, pic_square from user where uid = " + CStr(obj("id"))
    dim arr as jsonarray = app.query(fql)
    

    Facebook FQL page for user table

    0 讨论(0)
提交回复
热议问题