Télécharger l'image du profil depuis Facebook avec Actionscript 3
Je suis en train de charger les images de profil (ami des images) à partir de Facebook avec AS3, mais il me semble être en cours d'exécution dans un problème de sécurité.
Je suis actuellement à l'aide de la "officielle" Adobe Facebook API pour Actionscript 3 qui fonctionne très bien. Cependant, il me semble avoir des difficultés à charger les images de profil lors de l'exécution de mon application dans un navigateur. Les images de la charge fine lors de l'exécution dans le Flash IDE.
Les images sont chargées à partir de https://graph.facebook.com
et il semble y avoir un crossdomain.xml la politique relative à ce domaine:
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" secure="false" />
<site-control permitted-cross-domain-policies="master-only" />
</cross-domain-policy>
Dans d'autres sources que j'ai trouvé que l'ajout d'un ContextLoader à mon objet Loader lors du chargement de l'image devrait résoudre le problème, mais cela ne semble pas être le cas:
loader = new Loader();
//add some listeners here...
loader.load( new URLRequest( "imageurl" ), new LoaderContext(true) );
Je ne suis pas tout à fait sûr de savoir comment procéder pour le moment. J'espérais que le Adobe Facebook API permettrait de fournir de l'aide mais je n'arrive pas à trouver quelque chose qui résout ce problème.
Toute aide grandement appréciée.
Mise à JOUR:
Je viens de remarquer que lorsque je visite une des images dans un navigateur que je suis redirigé vers Facebook CDN où l'image est stockée. Quand je code en dur l'url de l'image avec l'URL redirigée je peux charger l'image dans le navigateur. Il semble que ce n'est pas un problème de sécurité, après tout, mais une redirection question.
Si c'est une redirection question est alors la question serait, Comment puis-je disposer de Flash Player charger une image à partir d'une URL redirigée?
Mise à JOUR 2:
Il semble que la classe URLRequest a un followRedirects
propriété qui n'est disponible que dans l'AIR.
Mise à JOUR 3:
Je suis actuellement en utilisant un Script PHP de me l'URL redirigée un travail, mais bien sûr, cela est loin d'être idéale et potentiellement une grosse pression sur mon serveur.
source d'informationauteur Luke | 2010-10-19
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et il semble que vous avez pour charger manuellement le crossdomain fichier du nom de domaine, vous êtes redirigé vers dans actionscript. Pour l'instant, elle ressemble à toutes les facebook les images de profil sont enfin chargés à partir du domaine http://profile.ak.fbcdn.net/.
Je viens d'ajouter cette ligne avant le chargement des images:
Cela devrait permettre le chargement du redirigé images, aussi longtemps que la redirection de domaine ne change pas. 😉
Vous pouvez utiliser un URLLoader et charger l'image comme un objet ByteArray. Cela semble fonctionner indépendamment de la redirection. Vous pouvez ensuite utiliser l'objet ByteArray comme la source d'une Image/BitmapImage ou d'utiliser un Chargeur pour charger les octets que vous avez l'url de l'image dans la première place.
Par exemple:
il devrait être un relitively chose facile à faire, tous les facebook les images de profil peuvent être trouvés en utilisant l'image de la racine de l'API graphique. comme ce lien:
"http://graph.facebook.com/" + nom d'utilisateur + "/image"
Je voudrais confirmer martin solution ici.
Mon cas va de tester l'application sur l'AIR de la plateforme, ce qui est bien et fonctionne très bien, l'image chargé avec succès.
Mais quand je port en toile application sur facebook alors je fais face à un problème, les images de profil de ne pas venir, il ne peut pas charger.
- Je utiliser ce que martin suggérons ici. Et si vous suivez une redirection d'url, vous verrez que la réalité des profils d'image sont situés au serveur CA pas de facebook lui-même, de sorte que vous devez charger de ce domaine de la politique de fichier en fonction actionscript de sécurité-bac à sable.
Merci encore.
totalement deviner mais vous pouvez utiliser URLLoader pour obtenir les données de la redirection d'appel, puis de l'analyser en une image xD
Je suis l'aide de deux loadPolicyFile appels, comme il semble qu'il y a 2 possible Cdn que facebook utilise. Cela fonctionne pour moi, mais bien sûr, une solution générique est préférable, facebook pourrait encore ajouter un autre CDN et des choses serait tout simplement arrêter de travailler sur leurs propres --
La URLLoader solution proposée par @Stiggler pourrait fonctionner. Je n'ai pas essayé. Mais il semble plus lourd par rapport à l'utilisation d'un objet Loader.
Puisqu'il y a beaucoup de domaines où Facebook stocke les photos, j'ai écrit un petit script qui utilise le domaine de l'image à charger la stratégie appropriée de fichier:
Sympa, c'est qu'il ne travaille pas seulement pour les images de profil, mais pour toutes les images facebook utilise.
Espère que cela aide certains d'entre vous!
PS: La classe URI est une partie de l'as3 core lib: http://code.google.com/p/as3corelib/