Estoy teniendo dificultades para acceder a los datos de respuesta JSON devueltos del nuevo Facebook JS SDKnuevas llamadas API de gráficos.Accediendo a los datos de la respuesta de FB.api()
Por ejemplo, en algunos de sus documentos en los que están utilizando la vieja manera de utilizar el SDK, que obtener un puntero a los datos por la respuesta [0]
pero aquí, se demuestra que es necesario utilizar response.data [0] en su lugar: http://developers.facebook.com/tools/console/ (haga clic en fb.api - álbumes de fotos)
¿Entonces cuál es? Sé que con mi código a continuación, si trato de usar el tipo de sintaxis de respuesta [0] para obtener el JSON devuelto, no estoy definido.
Si utilizo respuesta [0] .length También consigo indefinido
Pero si intento response.data [0] .length consigo 2, que supongo que es el JSON devuelto o mi 2 albums..I simplemente no sé cómo jugar con este objeto devuelto en términos de sintaxis y manipulación, sus propiedades, etc.
Quiero al final analizar el JSON devuelto utilizando el método jQuery parseJSON
, pero no tengo ni idea de cómo incluso pasar la sintaxis correcta aquí para la respuesta y simplemente usar ese objeto de respuesta.
FB.api(uri, function(response)
{
alert("response: " + response);
// check for a valid response
if (response == "undefined" || response == null || !response || response.error)
{
alert("error occured");
return;
}
alert("response length: " + response.data.length);
}
esta alerta me dio 2 que tiene sentido. Tengo 2 álbumes.
intenté algo así como response.data [0] e intenté con jQuery parseJSON(response.data)
o parseJSON(response.data[0])
en eso y no funciona. Entonces, ¿alguien puede explicar el objeto de respuesta aquí en lo que respecta a Facebook, supongo? No veo ningún documento sobre cómo usar ese objeto devuelto y cómo se construye.
Actualizado:
Ok, así que aquí está todo el intento método de análisis sintáctico que he apagó hasta ahora. No sé si el análisis de jQuery todavía es 100% bueno, en cierto modo lo apagué, pero ni siquiera puedo probarlo hasta que descubra cómo volver a utilizar este objeto de respuesta. Sé que está devolviendo JSON porque analicé otro objeto de respuesta de Facebook en otro método en JS SDK, así que estoy bastante seguro de que la respuesta [0] o response.data [0] te dará la cadena JSON.
function GetAllFacebookAlbums(userID, accessToken)
{
alert("inside GetAllFacebookAlbums(userID, acessToken)");
var dFacebookAlbums = {}; // dictionary
var uri = "/" + userID + "/albums?access_token=" + accessToken;
//var uri = "/me/albums";
alert("get albums uri: " + uri);
FB.api(uri, function(response)
{
alert("response: " + response);
// check for a valid response
if (response == "undefined" || response == null || !response || response.error)
{
alert("error occured");
return;
}
alert("response length: " + response.data.length);
for (var i=0, l=response.data.length; i<l; i++)
{
alert("response[key]: " + response.data[i].Name);
}
// parse JSON from response
var dJSONObjects = jQuery.parseJSON(response.data);
alert("dJSONObjects: " + dJSONObjects);
if (dJSONObjects.length == 0)
return;
// iterate through the dictionary of returned JSON objects
// and transform each to a custom facebookAlbum object
// then add each new FacebookAlbum to the final dictionary
// that will return a set of facebookAlbums
$.each(json.attributes, function() {
// add a new album to the dictionary
aFacebookAlbums[i] = FacebookAlbum(
jsonObject["id"],
jsonObject["name"],
jsonObject["location"],
jsonObject["count"],
jsonObject["link"]
);
});
});
return dFacebookAlbums;
}
Sí, lo intenté pero también no se definió. Quiero analizar la cadena JSON devuelta. Devuelven JSON, creo ... bastante seguro. – PositiveGuy
@coffeeaddict: Entonces 'alerta (response.data [0] .name);' no hace nada? No veo el ejemplo que vinculó para hacer un análisis sintáctico a mano, eso es manejado por la biblioteca API antes de que incluso llame a su devolución de llamada. –
en realidad eso es exactamente lo mismo que probé ... nombre porque cada álbum tiene una propiedad de nombre. Pero déjame intentarlo una vez más. Voy a publicar mi análisis ... sucede después de esa alerta en mi ejemplo anterior, pero como me estoy volviendo indefinido porque probablemente no sé lo que estoy recibiendo o cómo usar ese objeto, mi análisis también falla con un indefinido – PositiveGuy