Comment obtenir la grande image de l'aliment avec l'api graphique?
Lors du chargement de la Facebook rss d'une page, si une image existe dans l'alimentation, je veux afficher l'image grand format.
Comment puis-je obtenir avec le graph API
? Le lien de l'image dans le flux n'est pas la grande.
Grâce.
- La réponse actuelle n'est plus valable. Veuillez mettre à jour votre réponse choisie. @Benjamin Kuijten a le droit de répondre maintenant.
Vous devez vous connecter pour publier un commentaire.
C'est une nouvelle méthode pour obtenir une plus grande image. il est né après les aperçus méthode ne fonctionne pas
Profiter de votre image grand 🙂
id:454544544_45454454
created_time:"2015-10-12
et lastory
alors, comment puis-je obtenir de l'image de l'histoire, ou tout autre utilisateur a partagé avec moi les photos ou changé les images de profil etc.La L'API graphique de la photo de l'objet a un
picture
de connexion (similaire à ce que l'utilisateur de l'objet a):En fait la demande
https://graph.facebook.com/{object-id-from-feed}/picture
va vous rediriger vers l'album de la taille de la version de la photo immédiatement. (Utile non seulement pour l'affichage dans un navigateur, mais aussi si f.e. vous souhaitez télécharger l'image sur votre serveur, à l'aide de cURL avec follow_redirect option.)Edit:
Début de l'API v2.3, le
/picture
bord pour l'alimentation des postes est obsolète.Cependant, comme un champ l'image peut encore être demandé – mais ce sera un petit.
Mais
full_picture
est disponible en tant que bien.Donc
/{object-id-from-feed}?fields=picture,full_picture
peut être utilisé à la demande, ou ils peuvent être demandés directement avec le reste de flux de données, à l'instar de ce/page-id/feed?fields=picture,full_picture,…
(champs supplémentaires, tels que des messages, etc., doit être spécifié de la même manière.)full_picture
paramCe qui a fonctionné pour moi :
obtenir la photo du lien de l'alimentation et de remplacer "
_s.jpg
" avec "_n.jpg
"OAuthException
avec le message"(#100) No node specified"
.OK, j'ai trouvé une meilleure façon. Lorsque vous récupérez un flux avec l'API graphique, toute l'alimentation de l'élément avec un type de
photo
aura un champ appeléobject_id
, qui n'est pas là pour plainestatus
les éléments de type. Requête de l'API Graphique avec l'IDENTIFIANT, par exemplehttps://graph.facebook.com/1234567890
. Notez que l'ID de l'objet n'est pas un trait de soulignement valeurs séparées comme la principale ID de l'alimentation de l'élément est.Le résultat de la
object_id
requête sera un nouveau dictionnaire JSON, où vous aurez unesource
attribut contenant une URL pour une image qui a été jusqu'ici assez grand pour mes besoins.Il y a en outre un
images
tableau qui contient plus d'image Url pour différentes tailles de l'image, mais les tailles, il ne semble pas être prévisible, et ne sont pas tous correspondent en fait aux dimensions de l'image derrière cette URL.Je souhaite toujours il y avait un moyen de le faire avec un seul Graphique les appels de l'API, mais il n'a pas l'air comme il y en a un.
Pour la haute résolution de l'image des liens à partir de:
J'utilise la suite:
Remarque: La raison pour laquelle je donne le
_s -> _o
hack priorité sur lesobject_id/picture
approche est que la object_id approche n'a pas été de retour des résultats pour toutes les images._n.jpg
ou_n.png
maintenant. Aucun besoin de remplacer ceux-ci. Au lieu de cela, vous devez vous débarrasser de la/p130x130
ou/s130x130
.En fait, vous avez besoin de deux solutions différentes pour pleinement résoudre ce problème.
1] https://graph.facebook.com/{object_id}/image
Cette solution fonctionne très bien pour les images et les vidéos posté sur Facebook, mais malheureusement, il renvoie les images de petite taille dans le cas où le fichier image d'origine n'a pas été transférée à Facebook directement. (Lors de la publication d'un lien vers un autre site sur votre page, par exemple).
2] Le Facebook Graph API fournit un moyen pour obtenir le plein d'images dans le flux lui-même pour ces liens externes. Si vous ajoutez 'full_picture" pour les champs comme dans l'exemple ci-dessous lors de l'appel de l'API, il vous sera fourni un lien pour la version à plus haute résolution.
https://graph.facebook.com/your_facebook_id/posts?fields=id,link,full_picture,description,name&access_token=123456
La combinaison de ces deux solutions que j'ai fini par le filtrage de l'entrée en PHP comme suit:
Voir: http://api-portal.anypoint.mulesoft.com/facebook/api/facebook-graph-api/docs/reference/pictures
Viens de mettre "?type=grand" après l'URL pour obtenir la grande image.
Grâce à @mattdlockyer pour la JS solution. Ici est une chose de similaire dans PHP:
Après positifs commentaire de @Lachezar Todorov, j'ai décidé de poster mon approche actuelle (y compris de pagination et à l'aide de Json.NET ;):
Et l'aide de la méthode de recherchez des éléments individuels:
NewsItem classe j'utilise: