Facebook如何使用Graph API获取实际照片URL?

Facebook如何使用Graph API获取实际照片URL?,facebook,facebook-graph-api,Facebook,Facebook Graph Api,可以使用Graph api获取Facebook图像的实际图像url 例如,对于下面的照片 实际的URL是 是否有一些图形api方法可以实现这一点 是否有一些图形api方法可以实现这一点 因此,您必须查看对象的source字段: 资料来源: 照片的源图像-目前,其最大宽度或高度为720px,在2012年3月1日增加到960px 表示有效URL的字符串 这将为您提供照片上载的原始大小,用于较小的图像,或将每个方向的最大大小调整为960px 对于更大的尺寸,您必须检查图像字段: 图像: 照片的4种

可以使用Graph api获取Facebook图像的实际图像url

例如,对于下面的照片

实际的URL是

是否有一些图形api方法可以实现这一点

是否有一些图形api方法可以实现这一点

因此,您必须查看对象的
source
字段:

资料来源:

照片的源图像-目前,其最大宽度或高度为720px,在2012年3月1日增加到960px

表示有效URL的字符串

这将为您提供照片上载的原始大小,用于较小的图像,或将每个方向的最大大小调整为960px

对于更大的尺寸,您必须检查
图像
字段:

图像:

照片的4种不同存储表示形式

对象数组,包含高度、宽度和源字段


这“承诺”提供更大的尺寸(f.e.2048×1417px)–但请注意,如果原始图像没有要求的那么大,这些条目仍将提供更小的图像。

似乎缺少相关文档。用这种方法可以很简单地实现。在该url中,取出由fbid表示的pic的id。在上述情况下,它是357755307655174。现在对这个对象执行一个GraphAPI查询。这将返回一个JSON,其中包含数据库中存在的所有纵横比及其实际URL。格式后面的每个数据字段

{
      "height": 1080, 
      "source": "https://scontent-a.xx.fbcdn.net/hphotos-xpf1/t31.0-8/10296099_566697856780203_6555830953677139074_o.jpg", 
      "width": 1980
}
使用图形浏览器再次检查返回的JSON数据的格式。源就是您要查找的内容。

  • 发件人:
默认情况下,在创建节点或边时,不会返回节点或边中的所有字段 提出疑问。可以选择所需的字段或边 与
字段一起返回
查询参数

这就是为什么当你检索照片时,你只能得到
创建时间
名称
id

  • 发件人:
source
字段在最新的API(v2.8)中被弃用。使用
图像

因此,您的查询可能如下所示:

GET graph.facebook.com/{photo-id}?fields=images
{

"images":[
    {
        "height":358,
        "source":"https://scontent.xx.fbcdn.net/v/t1.0-9/15327427_585435148333529_xxxxxxxxxxxx_n.jpg?oh=xxxxxxxx&oe=xxxxxxxxx",
        "width":518
    },
    {
        "height":320,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p320x320/15327427_xxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxx&oe=xxxx&__gda__=xxxxxxxxxxxx",
        "width":463
    },
    {
        "height":130,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p130x130/15327427_xxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxxx&oe=xxx&__gda__=xxxxxxxxxxxxxxxxxx",
        "width":188
    },
    {
        "height":225,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p75x225/15327427_xxxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxxxxxxxxx&oe=xxxxxxxxxxxxxxxxxx&__gda__=xxxxxxxxxxxxxxxxxx",
        "width":325
    }
],
"id":"585435148333529"

}
答案应该是这样的:

GET graph.facebook.com/{photo-id}?fields=images
{

"images":[
    {
        "height":358,
        "source":"https://scontent.xx.fbcdn.net/v/t1.0-9/15327427_585435148333529_xxxxxxxxxxxx_n.jpg?oh=xxxxxxxx&oe=xxxxxxxxx",
        "width":518
    },
    {
        "height":320,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p320x320/15327427_xxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxx&oe=xxxx&__gda__=xxxxxxxxxxxx",
        "width":463
    },
    {
        "height":130,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p130x130/15327427_xxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxxx&oe=xxx&__gda__=xxxxxxxxxxxxxxxxxx",
        "width":188
    },
    {
        "height":225,
        "source":"https://fb-s-c-a.akamaihd.net/h-ak-xtl1/v/t1.0-0/p75x225/15327427_xxxxxxxxxxxxxxx_n.jpg?oh=xxxxxxxxxxxxxxxxx&oe=xxxxxxxxxxxxxxxxxx&__gda__=xxxxxxxxxxxxxxxxxx",
        "width":325
    }
],
"id":"585435148333529"

}

请求字段附件,从中可以找到原始图像

&fields=picture.type(large),attachments
newgraphrequest(
facebookToken,
String.format(“/%s/photos”,idAlbum),
参数,
HttpMethod.GET,
答复->{
试一试{
JSONArray photoArray=response.getJSONObject().getJSONArray(“数据”);
PhotoAlbumAfterPagination=response.getJSONObject().getJSONObject(“分页”).getJSONObject(“游标”).getString(“之后”);
Gson Gson=新的Gson();
Type Type=new-TypeToken(){
}.getType();
List=gson.fromJson(photoArray.toString(),类型);
}捕获(JSONException e){
e、 printStackTrace();
}
}
).executeAsync();

所以我必须添加
用户照片
权限?该死!我在问题中没有提到这一点,但问题中的照片是我从我的应用程序上传的。。上传后,FB只返回照片ID和帖子ID。。。即使我是上传照片的人,
user\u photos
permission是获取源URL的唯一方法吗?
source
字段不推荐使用。改用
图像
。我不明白你是怎么得到这个结果的。我有一个图片id(743109952401466),现在我想得到这张图片的url。所以它应该是这样的
https://graph.facebook.com/v2.5/743109952401466?access_token=my_token
但是它只给了我一个JSON输出,这个图片的
created\u time
nam
e和
id
,没有url。如何才能将JSON与
源代码
字段一起使用?@tyskaj-我也遇到过这个问题,并在其他地方了解到,您需要使用
?fields=link
查询参数指定请求返回的其他字段。因此,您的评论中的URL应该是:
https://graph.facebook.com/v2.5/743109952401466?access_token=my_token&fields=link
。对于v2.8和v2.9,我们只创建时间、名称和id。在8.0中已弃用