Facebook图形api php获取图片太慢

时间:2013-08-02 08:44:34

标签: php json facebook facebook-graph-api

您好,在我的新Facebook应用程序中,我尝试在屏幕上为用户加载一系列个人资料图片。问题是,它只需要太长时间。这就是我目前正在拍摄的照片 - 我还能做些什么来加快速度吗?执行时需要~10秒+。

我正在使用灯箱,只有在点击屏幕上的第一张图片时才真正需要加载其他图片,但不知道该怎么做。

    //First off we need to get some profile pics for the user:
    $getuseralbumsurl = "https://graph.facebook.com/". $row['FB_ID'] ."?fields=albums&access_token="
        . $access_token;
    $getuseralbums = json_decode(file_get_contents($getuseralbumsurl));
    $getuseralbums = $getuseralbums->albums;

    foreach( $getuseralbums->data as $album ){//Getting profile pics for user.

        if($album->type == "profile"){ //get profile picture album
            $albumid = $album->id;
            $photosurl = "https://graph.facebook.com/" . $albumid . "/photos?access_token=". $access_token ."&limit=3";

            $profilephotos = json_decode(file_get_contents($photosurl));

            $counter = 0;
            foreach( $profilephotos->data as $image ){

                if($counter == 3)//we only want 3 photos from the album.
                break;

                if($lowerbound == 0)
                    $photosurlarray['group1'][] = $image->source;
                else if($lowerbound == 1)
                    $photosurlarray['group2'][] = $image->source;
                else
                    $photosurlarray['group3'][] = $image->source;

                $counter++;
            }
            break;//we don't need anymore albums.
        }

谢谢!

2 个答案:

答案 0 :(得分:1)

另一种方法是通过PHP使用缓存方法。您将其设置为每隔5分钟通过PHP定期检查图像,然后将生成的HTML保存为.txt文档或类似文档。然后,您只需将.txt文档中的代码检索到您的实时网站即可。这样可以保证您网站上任何访问者的即时加载。

答案 1 :(得分:0)

我最终通过使用批处理请求解决问题,并在页面加载完成后使用AJAX生成作业以在后台运行。 这似乎已经成功了!