2013-05-10 2 views
7

그래프 API를 사용하여 팬 페이지의 벽 게시물을 가져옵니다.그래프 API : 페이지 피드에서 그림 크기 검색

페이스 북의 iOS 앱 자체가 자리 표시 자에 대한 정확한 비율을 결정할 수있는 것으로 나타났습니다.

enter image description here

http://developers.facebook.com/tools/explorer?method=GET&path=facebook%2Ffeed%3Ffields%3Dpicture

{ 
    "data": [ 
      { 
      "picture": "http://photos-b.ak.fbcdn.net/hphotos-ak-frc1/247019_457846347622804_946521095_s.jpg", 
      "id": "20531316728_10151883063741729", 
      "created_time": "2013-05-02T16:57:25+0000" 
      }, 
       : 
       : 
       : 
      { 
      "picture": "http://photos-e.ak.fbcdn.net/hphotos-ak-ash4/223257_10151498310776729_930531604_s.jpg", 
      "id": "20531316728_10151498193061729", 
      "created_time": "2012-10-05T18:42:38+0000" 
      } 
      ], 
    "paging": { 
     "previous": "https://graph.facebook.com/20531316728/feed?fields=picture&limit=25&since=1367513845", 
     "next": "https://graph.facebook.com/20531316728/feed?fields=picture&limit=25&until=1349462557" 
    } 
} 

은 내가 페이스 북과 같은 내 사용자 지정 클라이언트를 올바른 자리 크기가하고자하는 API 응답에있는 사진 '차원의 어떠한 정보도 포함하지 않는다 iOS 앱.

/facebook/feed?fields=picture,width,height을 추가하려고했지만 해당 정보를 검색 할 때 운이 없었습니다.

API 자체에서 그림의 높이 및 너비 매개 변수를 검색 할 수 있습니까?

답변

1

아니요, API가/page_id/feed 또는 스트림 테이블의 게시물 피드를 기반으로 한 그림의 크기를 ALL으로 반환하지 않습니다.

나는 당신이 할 수있는 것은 모두 있기 때문에 언급 :

SELECT post_id, created_time, actor_id, attachment, message FROM stream WHERE source_id=PAGE_ID AND created_time<now() LIMIT 50 

포스트 유형 인 경우 사진 : enter image description here

포스트 유형 인 경우 비디오 : enter image description here

경우] 포스트 유형은 fbexternal (매개 변수 w 및 h 추출)로 시작합니다. enter image description here

포스트 유형이 fbexternal (페이스 북 사진)이없는 링크 인 경우 여기에 붙어 있습니다!: enter image description here

코드 프로토 타입 :

if attachment: 
    image_url = attachment.media[0].src 
    if image_url: 
     m = image_url.photo.images 
     if m: 
      if m.src == image_url: 
       image_width = m.width 
       image_height = m.height 
     else: #no dimensions info 
      if host by fbexternal: 
       #extract parameter w and h from https://fbexternal-a.akamaihd.net/safe_image.php?d=AQBhfbzbNudc_SE8&w=130&h=130&url=http%3A%2F%2F 
       image_width = 130 
       image_height = 130 
      else: 
       Stuck here, very hard to get extract photo id based on this url, a lot of work! 

결론적으로, 내가보기 엔 당신이 사진 다운로드 후 이미지의 폭과 높이를 취득하는 것이 좋습니다. 예를 들어, PHP는 getimagesize 함수를 가지고 있고 python은 Python Imaging Library (PIL)를 가지고 있습니다.

+0

고마워, 나는 "링크"유형을 알 수 없도록 남겨 두었다. 그래서 그래프 API는 그것을 검색 할 수있는 방법이없는 것처럼 보였습니다. 필자는이 순간에 FQL을 사용할 것입니다. –

0

필요한 너비와 높이를 얻는 쉬운 방법이 있는지 확실하지 않지만 여기에는 확실하지만 다소 길어요.

예를 들어 첫 번째 그림 "20531316728_10151883063741729"에 표시되는 ID는 실제로 그림의 ID가 아닙니다. 그것은 사진에있는 게시물에 대한합니다.

할 수있는 일

는, 그 postID 다음

http://developers.facebook.com/tools/explorer?method=GET&path=20531316728_10151883063741729

이 사진의이 OBJECT_ID 457846347622804 (수색을 노출하고 당신이 볼 수에 대한 쿼리입니다 내 말은). 이제 그 그림의 ID를 쿼리하면 너비와 높이가 제공됩니다. 당신은 당신이 필요로하는 비율을 얻을 수 있어야부터

http://developers.facebook.com/tools/explorer?method=GET&path=457846347622804

.

누구든지이 일을 처리 할 수있는 우아한 방법이 있다면 나도 알고 싶습니다.

+0

아니요, 귀하의 예는 사진 유형에만 적용됩니다. 동영상 및 링크 유형 모두 객체 ID를 반환하지 않습니다. –

+0

수정 사항 : 비디오 유형이 facebook 비디오 인 경우 object_id를 반환 할 수 있습니다 (예 : https://www.facebook.com/photo.php?v=10200642979948528). 그러나 https://www.facebook.com/22707976849/posts/10151415452136850은 object_id를 반환하지 않습니다. –

+0

나는 그 질문이 무엇을 요구하고 있는지 추측하면서 페이스 북 사진과 페이스 북 비디오에 관해 이야기하고 있었다. –

관련 문제