9
votes

Facebook graphique haute résolution photos

Je fais un appel de API de graphique Facebook pour "ME / Home" pour obtenir le flux de nouvelles de l'utilisateur. Comme tout le monde le sait, l'URL que vous rencontrez dans le champ "Image" est une photo basse résolution qui n'a pas l'air bien sur 100x100. Je sais que vous pouvez obtenir l'URL à l'image haute résolution en faisant un autre appel de graphique pour "Object_id" et à l'aide du champ "Source" dans ce résultat.

Mais je regardais les URL et que je pensais y avoir un moyen transformer l'un dans l'autre sans avoir à faire un autre appel de graphique. Soit cela, soit construire la haute résolution des données existantes dans d'autres domaines. Par exemple, la première URL est la résolution basse, et la deuxième URL est la résolution source. P> xxx pré>

On dirait que les chiffres sont (quelque chose que je n'ai pas t savoir) _ ("objet_id") _ (autre chose que je ne sais pas) code> p>

a-t-il eu une expérience en essayant de changer les URL tout en conservant la section numérique au milieu ? Y a-t-il des variations typiquement susceptibles de causer des problèmes de regex? P>

EDIT: Voici le code que j'utilise. P>

String objectId = null;
if (jsonObject.has("object_id")) {
    objectId = jsonObject.getString("object_id");
}
String postPhoto = "http://graph.facebook.com/" + objectId + "/picture";


0 commentaires

7 Réponses :


9
votes

ME / HOME - API graphique a un champ appelé "code>" objet_id "et" TYPE ". Si le type est "photo", vous aurez cette valeur d'objet_id. En utilisant cet ID d'objet et apportez un autre appel d'API graphique, vous obtiendrez un objet appelé "images" . Cet objet a plusieurs options (différentes tailles).

ou

Utilisez l'identifiant d'objet comme ci-dessous et obtenez une version de la taille d'une album d'une photo. et les types pris en charge pour cet appel sont «Thumbnail, Normal, Album». xxx

et aussi à la commande de ce lien sous Exemples d'objets pris en charge section.


6 commentaires

Merci. Votre première solution est ce que j'essayais d'éviter (faire deux appels de graphes, l'un après l'autre). Le second peut, travailler aussi longtemps que la qualité de l'image est suffisamment élevée. Je vais devoir essayer ce soir.


J'ai essayé de ne pas travailler alors j'ai enlevé l'expansion "? Tapez = normale". Faire cela chargé l'image de point de repère en stock Facebook pour la majorité de toutes les images, à l'exception d'un couple qui a effectivement chargé les bonnes.


Moi / Accueil retournera les valeurs d'alimentation des nouvelles, veuillez donc vérifier le type de poste. Si sa "photo" vous aurez la valeur Object_ID à l'aide de celle que vous pouvez appeler cela dans votre URL pour obtenir les images.


C'est juste ce que je fais. J'ai mis à jour le message avec un peu de code.


Les images de point de question montrant parce que cet appel " graph.facebook.com {objet-id-de-weight} / l'image "n'a pas la permission. Essayez Ajouter Access_Token avec cette URL.


Assurez-vous d'utiliser l'objet_id, pas seulement l'ID! C'était me déchaîner. Voir Connexes: Stackoverflow.com/a/33765417/264031



1
votes

C'est une réponse tardive, mais j'ai trouvé une meilleure approche

si vous avez une adresse à l'aide de l'API graphique, comme ceci xxx

il suffit de remplacer 130x130 à Une résolution valide xxx

et vous pourrez obtenir une image haute résolution

une résolution d'image valide peut être trouvée à partir de cet exemple d'appel < P> http://graph.facebook.com/701586786556517

701586786556517 = Object_id de Facebook Graph API Call

J'espère que cela aide quelqu'un.


7 commentaires

Merci. J'ai effectivement trouvé une manière encore meilleure. Si l'URL a _s.jpg , remplacez-le par _n.jpg . Si cela a déjà _n.jpg , la plupart du temps, il sera toujours faible. Dans ce cas, supprimez simplement le / 130x130 et vous obtenez la résolution complète presque toujours.


Oui tu as raison, mais mon approche vous donne aussi plus de flexibilité


Oui. J'ai trouvé des éléments qui ont des valeurs autres que s130x130 , tels que s50x50 ou p130x130 . J'ai donc utilisé une regex pour supprimer cela. Encore une fois, tout cela pour éviter de devoir faire un autre appel de graphique à l'aide de objet_id .


Aucun de ces travaux ne fonctionne plus quand je les ai essayés. Y a-t-il une meilleure façon? C'est celui que j'ai essayé avec. FBCDN-SPHOTOS-GA.AKAMAIHD.NET/HPHOTOS-AK-XPA1/V/T1.0-9/...


Coller un lien de cette image sur facebook imho ci-dessus logique est toujours valide


Le piratage ne fonctionne plus. Il semble qu'une sorte d'impression du doigt est implémenté. Maintenant, qui peut inverser l'ingénieur le processus et la partager :) scontent.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/p130x130/...


Lorsque vous faites le ME / HOME Call Graphe Ajouter Champs = Pièces jointes à la fin. Cela donnera une gamme de pièces jointes avec un src enterré quelques niveaux pour des images HI-RES.



5
votes

Tout ce que vous avez à faire est (API graphique):

http://graph.facebook.com/{user_id}?fields=picture.height(961) 
// replace {user_id} with the user id you want


1 commentaires

Pouvez-vous relier la documentation à cela?



0
votes

Pour une raison quelconque, aucune des réponses à cette question n'a fonctionné, une personne sur un autre forum a été publiée pour utiliser "Full_Picture" dans les champs Peramètre et fonctionnait comme un charme. Je n'ai trouvé cela dans aucun des docs ... sauf si je viens de le négliger?

op https://www.quora.com/how-do-ift-ge-full-Size-Of-Image-in-a-facebook-post-utilisateur-graph-api << / p>


2 commentaires

Un lien externe peut fournir une réponse réelle et correcte, mais vous devez mettre le code principal ici. Si à l'avenir, ce lien est enfreint, le reste des utilisateurs aura une réponse inutile


La réponse du quora post qui fonctionne comme un charme était cette graph.facebook.com/ ou userid> / image? hauteur = 1080 et largeur = 1080 1080 peut être changé en une taille de votre choix



0
votes

Aucune de ces réponses n'a été travaillé pour moi, demandant aux pièces jointes de champs résolues

&fields=picture.type(large),attachments


0 commentaires

0
votes

L'API graphique retourne la réponse qui inclut images forte> et Webp_images strong> et il a des liens d'image dans toutes les résolutions disponibles.

Selon la dernière version: v2 .12 strong> p>

pour la photo de profil: p> xxx pré>

pour l'album spécifique: p> xxx pré>

Détails sur le terrain: p>

Photos strong>: Array de photos disponibles, cela retournera JSON comme ci-dessous: P>

{
    height: number, // 400
    source: 'link for the image with the resolution of height and width specified', //https:....
    width: number //496
}


0 commentaires

1
votes

Utilisez ceci:

/user_id/?fields=picture.height(961)


0 commentaires