2013-04-30 5 views
0

im travaille actuellement sur l'intégration de facebook dans mon jeu AS3 mobile. Je télécharge des photos d'amis, ce qui fonctionne très bien et n'est pas actuellement un problème. Le problème est, j'essaye de détecter, si l'utilisateur a l'image de silhouette (par défaut) ou la sienne (propriété de is_silhouette);Facebook graphique api fonction - réponse vide

Code va ici:

(réponse [i] .id) est un ID utilisateur que j'ai obtenu de précédent api comunication

... 
HasDefault(response[i].id); 
... 

    private function HasDefault(uid:int):void{ 
     FacebookMobile.api("/"+uid+"/picture", callbackX); 
    } 


    private function callbackX(response:Object,fail:Object):void{ 
    if (response != null){ 
     trace(response.url); 
     trace(response.is_silhouette); 
    }else{ 
     trace("here goes nothing..."); 
    } 

premières choses d'abord ... ce code a plus de 2 problèmes. Le premier problème est, à moins d'utiliser l'URL absolue, facebook ne répond pas, donc la méthode de l'API a effectivement ressembler à ceci:

FacebookMobile.api("https://graph.facebook.com/"+uid+"/picture", callbackX); 

je ne sais pas pourquoi je dois utiliser url absolue ici, parce que nulle part ailleurs id/fonction assez bon ... mais ce n'est pas encore le problème principal.

Si j'utilise l'URL absolue je reçois une réponse valide de facebook mais selon ce https://developers.facebook.com/docs/reference/api/using-pictures/ je devrais obtenir response.url et response.is_silhouette dans mon objet de réponse. je ne reçois cependant qu'un objet de réponse vide ... Je commence à être vraiment désespéré.

En outre, j'ai essayé de coller la demande dans l'explorateur SAME https://developers.facebook.com/tools/explorer oh surprise ... il retourne

{ 
    "data": { 
    "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-frc1/somenumbers.jpg", 
    "is_silhouette": false 
    } 
} 

... ce qui est exactement ce que je dois ... mais dans l'application je reçois seulement l'objet de réponse vide ...

+1

Pour l'édification, voici la question précédente: http://stackoverflow.com/questions/16307115/facebook-graph-api-function-empty-response –

Répondre

1

Je ne sais pas ce que vous en ligne "FacebookMobile.api (" https://graph.facebook.com/ "+ uid +"/picture ", callbackX);" Est-ce que. Mais quelle que soit la librairie, arrêtez de l'utiliser, car elle ne vous permet pas de spécifier l'appel que vous voulez faire. Vous pouvez simplement appeler le graphique api appelle vous-même en utilisant un URLLoader.

Alors voici la chose magique qui va mal: Vous devez être en mesure d'ajouter une variable supplémentaire lorsque vous demandez l'image: "? Redirect = false" Cela dit facebook pour vous donner une réponse JSON. Si vous n'avez pas cette variable, vous obtiendrez une redirection vers l'image réelle, ce qui est généralement ce qu'une personne veut de toute façon. Pour voir comment cela fonctionne, testez les deux liens ci-dessous, un avec redirect = false - que vous voulez. et Un avec elle réglé à vrai - que vous n'avez pas.

https://graph.facebook.com/shaverm/picture?redirect=false

https://graph.facebook.com/shaverm/picture?redirect=true

Je suis assez sûr ce qui se passe est que vous obtenez l'image en arrière au lieu de la réponse JSON décrivant l'image.

+0

Je vais me pencher là-dessus. En passant, FacebookMobile est officiel Adobe sdk pour API OpenGraph ... – Casper522

+0

Ahh oui. Cette chose. Dernière mise à jour Octobre 2011? https://code.google.com/p/facebook-actionscript-api/source/list Je pense qu'il est peut-être temps de le rejeter et d'appeler directement le graphique. –

+0

vous aviez raison homme, j'ai essayé de le charger avec rediriger faux par chargeur standart/demande de modèle et cela a fonctionné comme un charme, merci. Oui, c'est peut-être le cas, merci pour vos conseils – Casper522