首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >facebook API照片分页未返回“上一页”链接

facebook API照片分页未返回“上一页”链接
EN

Stack Overflow用户
提问于 2013-01-04 14:05:45
回答 1查看 790关注 0票数 2

参考下面的文章:

http://www.masteringapi.com/tutorials/how-to-create-a-user-photo-albums-browser-using-facebook-graph-api/77/

我正在创建一个使用Facebook图形API的用户相册浏览器。除了Pagination之外,一切都运行得很好。问题出在$facebook->api没有返回“上一个”分页链接。

以下是我的代码:

代码语言:javascript
运行
复制
$params = array();
    $params['offset'] = 0;
    if (isset($_GET['offset']))
        $params['offset'] = $_GET['offset']+25;
    if (isset($_GET['limit']))
        $params['limit'] = $_GET['limit'];
    $params['fields'] = 'name,source,images';
    $params = http_build_query($params, null, '&');        
    $album_photos = $facebook->api("/{$_GET['id']}/photos?$params");

    if (isset($album_photos['paging'])) {
        if (isset($album_photos['paging']['next'])) {
            $next_url = parse_url($album_photos['paging']['next'], PHP_URL_QUERY) . "&id=" . $_GET['id'];
        }
        if (isset($album_photos['paging']['previous'])) {
            $pre_url = parse_url($album_photos['paging']['previous'], PHP_URL_QUERY) . "&id=" . $_GET['id'];
        }
    }

如果我正在打印以下内容:

代码语言:javascript
运行
复制
        echo '<pre>';
        print_r($$album_photos['paging']);
        exit;

结果显示的链接如下:

代码语言:javascript
运行
复制
[paging] => Array
        (
            [next] => https://graph.facebook.com/133750480034063/photos?fields=name,source,images&offset=0&limit=25&after=MzI0ODMwNTYwOTI2MDUz
        )

这意味着paging数组只为next返回链接,而不为previous返回链接。

如何获取previous链接。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-04 16:49:09

结果显示的链接如下:

代码语言:javascript
运行
复制
[next] => https://graph.facebook.com/133750480034063/photos?
          fields=name,source,images&offset=0&limit=25&after=MzI0ODMwNTYwOTI2MDUz

,这意味着分页数组只为下一个返回链接,而不为上一个返回链接。

偏移量为0的情况下,显然没有以前要检索的数据集。

Facebook在去年年底改变了这一点,称如果确实有更多数据需要获取,他们现在只返回前一个/下一个URL。(并非适用于所有连接,但适用于某些连接。)

这是一件好事,因为它使开发人员不必为了发现没有更多的数据而发出另一个耗时的HTTP请求。

因此,如果它们存在,并且您需要更多数据,则使用它们-如果它们不存在,则什么也不做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14151955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档