9

我正在为“me/home”进行 Facebook Graph API 调用以获取用户的新闻提要。众所周知,您在“图片”字段中获得的 URL 是一张低分辨率的照片,在 100x100 以上的任何东西上都不好看。我知道您可以通过对“object_id”进行另一个图形调用并在该结果中使用“source”字段来获取高分辨率图片的 URL。

但我正在查看 URL,并认为可能有一种方法可以将一个转换为另一个,而无需进行另一个图形调用。要么,要么从其他领域的现有数据中构建高分辨率。例如,第一个 URL 是低分辨率的,第二个 URL 是源分辨率。

http://photos-d.ak.fbcdn.net/hphotos-ak-ash4/297313_10152643117455790_610095553_s.jpg
http://sphotos-b.xx.fbcdn.net/hphotos-ash4/297313_10152643117455790_610095553_n.jpg

看起来数字是(something I don't know)_("object_id")_(something else I don't know)

有没有人尝试更改 URL,同时仍将数字部分保持在中间?通常是否存在可能导致正则表达式问题的变化?

编辑:这是我正在使用的代码。

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

检查帖子是否为照片在代码中稍早一些,因此它将始终针对“照片”类型的帖子运行这些行。

4

7 回答 7

9

me/home-graph api 有一个名为"object_id" and "type". 如果类型是“照片”,那么您将拥有这个 object_id 值。通过使用此对象 id 并进行另一个图形 api 调用,您将获得一个名为"images". 这个对象有几个选项(不同的大小)。

或者

使用像下面这样的对象 id 并获取相册大小的照片版本。此调用支持的类型为“缩略图、普通、相册”。

https://graph.facebook.com/{object-id-from-feed}/picture?type=normal 

并在“支持的对象示例”部分下查看此链接。

于 2013-03-12T02:40:56.840 回答
5

您需要做的就是(图形 API):

http://graph.facebook.com/me?fields=picture.height(961) 
// all any height which u want

或(对于其他用户)

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

更新 :

由于 Facebook API 将不断更新,此解决方案可能已被弃用。此变通方法解决方案将来可能不起作用。

您可能还需要访问令牌来执行此端点。

于 2015-10-26T12:07:28.830 回答
1

这是一个迟到的回应,但我找到了更好的方法

如果您使用这样的图形 api 获得地址

https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-xaf1/t1.0-9/s130x130/10501892_701590943222768_782659935906208443_n.png

然后只需将 130x130 替换为有效分辨率

https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-xaf1/t1.0-9/s480x480/10501892_701590943222768_782659935906208443_n.png

您将能够获得高分辨率图像

可以从此示例调用中找到有效的图像分辨率

http://graph.facebook.com/701586786556517

701586786556517 = 来自 Facebook 图形 API 调用的 object_id

希望这可以帮助某人。

于 2014-07-10T15:52:45.653 回答
1

用这个:

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

它将提供最大可能的分辨率图片。

于 2018-11-02T18:43:07.250 回答
0

出于某种原因,这个问题的答案都没有奏效,但是,另一个论坛上的一个人发布在字段参数中使用“full_picture”,它就像一个魅力。我在任何文档中都没有找到这个……除非我忽略了它?

OP https://www.quora.com/How-do-I-get-the-full-size-of-image-in-a-Facebook-post-using-Graph-API

于 2017-05-16T12:46:22.837 回答
0

graph api 返回包含图像webp_images的响应,并且它具有所有可用分辨率的图像链接。

根据最新版本:v2.12

对于个人资料照片:

/me?fields=photos{picture,images,webp_images}

具体专辑:

'album-id'?fields=photos{picture,images,webp_images}

字段详情:

photos : 可用照片数组,这将返回 json,如下所示:

{
    data: [],
    pagin: []
}

数据对象中,我们将获得以下字段:

图片:低分辨率图像的链接可能用于缩略图的使用

images : 光栅格式不同分辨率的图片对象数组

webp_images : webp格式不同分辨率的图片对象数组

图像web_images对象将具有如下数据:

{
    height: number, // 400
    source: 'link for the image with the resolution of height and width specified', //https:....
    width: number //496
}
于 2018-03-19T12:43:16.813 回答
0

以上都不适合我,要求现场附件解决了

&fields=picture.type(large),attachments
于 2017-07-11T10:01:59.560 回答