2013-02-22 2 views
1

Я разбираю фидбук с Facebook и получаю фотографии из фида из data.picture; если есть ссылка на картинку в кормахУвеличьте изображение из ссылок facebook в фиде

Это, как я получить данные функции getFeeds (лексем) {

var row; 
var tableData = []; 
var json, data, name, picture, description, likes; 

Ti.Facebook.requestWithGraphPath(Titanium.App.Properties.getString("pageID") +'/feed', {access_token: Token}, 'GET', function(e){ 
    if (e.success) { 
     json = JSON.parse(e.result); 
     for (i = 0; i < json.data.length; i++) { 
     if (json.data[i].message) { 
        row = addRow(json.data[i]); 
        tableData.push(row); 
        } 
      // } 

     } activityScreen.hide(); 
     table.setData(tableData); 
    } else { 
     if (e.error) { 
      //alert(e.error); 
     } else { 
      alert("#serverfail..."); 
     } 
    } 
}); 
} 

картина, которую я получаю WAY малым.

Как я могу получить большую картинку?

Thanx

ответ

5

Для того, чтобы получить большую картинку со страницы подачи пост, сначала необходимо проверить тип питания, если тип равен фото, то вы можете найти дополнительную «идентификатор объекта» в обратном результат. Таким образом, используя этот идентификатор объекта, если вы отправляете другой вызов графика api. В результате возврата вы получите поле под названием «изображения». Под изображениями вы получите несколько изображений размера. Там вы можете выбрать нужный размер. Значением по умолчанию в поле «картинка» является изображение размера миниатюры, поэтому ваш размер изображения немного. (In the fb page, checkout the example link)

https://graph.facebook.com/feed ===> 

"picture": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQB3Wv9mtyMdfNfw&w=90&h=90&url=https%3A%2F%2Fgeneralassemb.ly%2Fassets%2Fstatic%2FWin-A-Trip-To-SF-94fb4a6d732c86534f23e9a9ec2c2d4d.jpg", 
    "link": "https://generalassemb.ly/win/trip-to-sf", 
    "name": "Break Into the Big Leagues", 
    "type": "link", 

"type": "photo", 
     "status_type": "added_photos", 
     "object_id": "10151322059288553", 

, если вы используете этот "object_id"

https://graph.facebook.com/10151322059288553 

"height": 300, 
    "width": 720, 
    "images": [ 
    { 
     "height": 853, 
     "width": 2048, 
     "source": "https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-prn1/s2048x2048/16985_10151322059288553_286780821_n.jpg" 
    }, 
    { 
     "height": 392, 
     "width": 940, 
     "source": "https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-prn1/16985_10151322059288553_286780821_n.jpg" 
    }, 
+0

Насколько мне известно, , это единственный способ получить увеличенное изображение. Вам нужно сделать еще один запрос графика, который является неудачным. – Wenger

+0

Да! Это сделал трюк! Thanx! –

+0

пытаясь использовать это самостоятельно. Нашел object_id, но когда я его прошу, я получаю запрос Unsupported get. Ссылка - https://graph.facebook.com/10153328434075078 любая помощь, которую оценили как действительно борющуюся с использованием facebook api. – v3nt

6

Если вы не хотите, чтобы сделать второй запрос на график, вы можете просто заменить с на конец URL изображения с n.

Так http://photos-h.ak.fbcdn.net/hphotos-ak-ash3/12345_12345_12345_s.jpg становится Так http://photos-h.ak.fbcdn.net/hphotos-ak-ash3/12345_12345_12345_n.jpg

+5

Это все еще работает на сегодняшний день. Однако я не нашел способ изменить размер URL-адресов в формате 'http://external.ak.fbcdn.net/safe_image.php?d=AQAsyWsDk3pqGiqK&w=130&h=130&url=http%3A%2F%2Fi1.ytimg.com% 2Fvi% 2FurBJNHelfWY% 2Fmaxresdefault.jpg, очевидные w и h не могут быть изменены. – Ciantic

4

Вы не можете изменить размер фотографии возвращенного по safe_image.php ссылкам, насколько я знаю, так что если ссылка не на объект Facebook, то лучше всего вы можете извлечь строку строки запроса url из ссылки, urldecode и захватить исходное изображение.

например. если ваш URL (от свойства «картинка» поста) был

https://fbexternal-a.akamaihd.net/safe_image.php?d=AQBMV0YW8BCmCBMB&w=154&h=154&url=https%3A%2F%2Ffbstatic-a.akamaihd.net%2Frsrc.php%2Fv2%2Fy6%2Fr%2FYQEGe6GxI_M.png 

и хранится в переменной url, то это должно вернуть URL полного размера изображения:

decodeURIComponent(url.match(/(url=)(.+)$/)[2]);