Deserialize Facebook Photos Result

149 views Asked by At

I'm trying to deserialize the result that returned from FB request. I've managed to get the Photos list of user who are already logged in to my app through facebook by using this two lines:

string meQueryString = "/me?fields=photos";
FB.API(meQueryString, Facebook.HttpMethod.GET,GetPhotosCallback );

The only issue that holding me is that I can't figure out how to deserialize the FBResult.

This is my code:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using Facebook.MiniJSON;
using UnityEngine.UI;
using Facebook;
public class User_Photos : MonoBehaviour {

private static List<object>  PhotosData ;
//public string link;
 void Awake()
{
    FB.Init(SetInit, onHideUnity);
}

private void SetInit()
{
    Debug.Log("FB Init Done");
    if (FB.IsLoggedIn) {
        Debug.Log ("FB lOGGED iN");
    }else {
        //FBLogin();
    }
}

private void onHideUnity(bool isGameShown)
{
    if (!isGameShown) {
        Time.timeScale = 0;
    } else 
    {
        Time.timeScale = 1;
    }
}

string meQueryString = "/me?fields=photos";
public void FacebookLogin()
{
    Debug.Log("Facebook Login Part");
    FB.Login ("user_photos, user_about_me", LoginCallback);
}
void LoginCallback(FBResult result)
{
    if (FB.IsLoggedIn) {
        Debug.Log ("user Logged in, Know We try To get Photos ");
        GetPhotos();
    } else {
        Debug.Log(" user failed");
    }
}

void GetPhotos()
{
    //if (FB.IsLoggedIn) {
        Debug.Log("GetPhotos");
    FB.API(meQueryString, Facebook.HttpMethod.GET,GetPhotosCallback );
    //}
}

void GetPhotosCallback(FBResult GetPhotosCallbackResult)
{
    PhotosData = DeserializeJasonPhotos (GetPhotosCallbackResult.Text);

    Debug.Log ("hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh" + PhotosData);
    foreach (Text im in PhotosData) {
        Debug.Log (im);
    }

}

public static List<object> DeserializeJasonPhotos(string jsonString)
    {
    Debug.Log ("ghhhhhhhhhhhhhhhhhhhhhhggggg");

    var reponseobject = Json.Deserialize (jsonString) as Dictionary<string, object>;
    object PicturesH;
    var photos = new List<object>();
    if (reponseobject.TryGetValue ("data", out PicturesH)) {
        Debug.Log (" try get value");
        photos = (List<object>)(((Dictionary<string, object>)PicturesH) ["images"]);

        if (photos.Count > 0) {
            var photoDict = ((Dictionary<string, object>)(photos [1]));
            var photo = new Dictionary<string,string> ();
            photo ["source"] = (string)photoDict ["source"];

            Debug.Log (photoDict);



        }
        //foreach (string link in Photos) {
        //print( photo["source"]);
    } else {
          Debug.Log("faillllllllllllllllllllldddddddddddddddddddd");
     }

    return photos;
    //Debug.Log ("photossss");
}

}

this is the FBresult

{
 "photos": {
   "data": [
    {
    "id": "769988419745989", 
    "created_time": "2015-02-23T17:07:07+0000", 
    "from": {
      "id": "806977726047058", 
      "name": "Raed Lafi"
    }, 
    "height": 720, 
    "icon": "https://static.xx.fbcdn.net/rsrc.php/v2/yz/r/StEh3RhPvjk.gif", 
    "images": [
      {
        "height": 720, 
        "source": "https://scontent.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/11017839_769988419745989_5648743920431828327_n.jpg?oh=757cc110e49e9861cac40e127e4752c7&oe=55ED32B1", 
        "width": 720
      }, 
      {
        "height": 600, 
        "source": "https://scontent.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/p600x600/11017839_769988419745989_5648743920431828327_n.jpg?oh=ece74dd3c1799a4acc50ca89f6deb8d3&oe=55F2D4AF", 
        "width": 600
      }, 
      {
        "height": 480, 
        "source": "https://scontent.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/p480x480/11017839_769988419745989_5648743920431828327_n.jpg?oh=98daf2a09e20217d59eec14671aa7cce&oe=56204A4F", 
        "width": 480
      }, 
      {
        "height": 320, 
        "source": "https://scontent.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/p320x320/11017839_769988419745989_5648743920431828327_n.jpg?oh=4f61569d5c2ee246e5e031cea1f8f739&oe=5634EE15", 
        "width": 320
      }, 
      {
        "height": 540, 
        "source": "https://scontent.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/p180x540/11017839_769988419745989_5648743920431828327_n.jpg?oh=31d93f7b3acd4b03275c5b074cca49e5&oe=562F1CA8", 
        "width": 540
      }, 
      {
        "height": 130, 
        "source": "https://scontent.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/p130x130/11017839_769988419745989_5648743920431828327_n.jpg?oh=3539be4afc60f75d50a02045c8fd7993&oe=55F1DC7A", 
        "width": 130
      }, 
      {
        "height": 225, 
        "source": "https://scontent.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/p75x225/11017839_769988419745989_5648743920431828327_n.jpg?oh=25f061ef2c9dd1cbf1c0db07d9233d12&oe=56236BF9", 
        "width": 225
      }
    ], 
0

There are 0 answers