Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php将照片从facebook导入网站?_Php_Facebook - Fatal编程技术网

如何使用php将照片从facebook导入网站?

如何使用php将照片从facebook导入网站?,php,facebook,Php,Facebook,我正在创建一个网站,使用Facebook帐户登录的用户将在该页面上看到他们的图片。我必须在我的网站中输入什么代码才能看到登录用户的图片 如果有人能帮我链接到一个教程或者给我指出正确的方向 我已经从Facebook和on stack overflow上阅读了很多文档,但我找不到答案,检查stack上的另一个问题您可以通过两种方式完成:在服务器端(在您的情况下使用PHP)或在客户端使用JavaScript SDK 两者都假定您具有所需的访问凭据。您需要注册一个应用程序帐户才能在 服务器端 第一步是让

我正在创建一个网站,使用Facebook帐户登录的用户将在该页面上看到他们的图片。我必须在我的网站中输入什么代码才能看到登录用户的图片

如果有人能帮我链接到一个教程或者给我指出正确的方向


我已经从Facebook和on stack overflow上阅读了很多文档,但我找不到答案,

检查stack上的另一个问题

您可以通过两种方式完成:在服务器端(在您的情况下使用PHP)或在客户端使用JavaScript SDK

两者都假定您具有所需的访问凭据。您需要注册一个应用程序帐户才能在

服务器端 第一步是让应用程序参与OAuth身份验证过程。这在中有很好的PHP文档(请参阅服务器端流程部分)

完成后,您将拥有一个访问令牌,可以使用该令牌调用Graph API。获取用户照片的端点是
https://graph.facebook.com/me/photos?access_token=
。在这种情况下,
me
始终是登录以向应用程序提供令牌的用户

在PHP中,假设您已将访问令牌存储在
$SESSION['token']
中,您可以通过以下方式请求照片负载:

$url = "https://graph.facebook.com/me/photos?access_token=" . $SESSION['token'];
$photos = json_decode(file_get_contents($url));
$photos
对象将是中描述的
Photo
实体的列表

客户端 您需要在您的web页面上设置JavaScript SDK,如文档所示

客户端的身份验证由JavaScript SDK处理,同样记录在中

使用SDK,您可以对相同照片结构的Graph API进行客户端JavaScript调用:

FB.api('/me/photos', function(response) {
    if(!response || response.error) {
        // render error
    } else {
        // render photos
    }
});

我认为现在Facebook已经改变了导入照片的方式,因此我们必须首先获取相册,而不是导入相册的照片。至少我是这样做的。:)下面是使用PHP的基本api调用

获取相册:-
获取相册照片:-

下面是完整的代码摘要。在文件中复制此代码并检查是否导入照片

<?php
include 'facebook/facebook.php';
$config = array();
$config['appId'] = YOUR_APP_ID;
$config['secret'] = YOUR_APP_SECRET;
$config['fileUpload'] = false; // optional

$facebook = new Facebook($config);
$user_id = $facebook->getUser();
$access_token = $facebook->getAccessToken();
?>
<?php
if ($user_id && $access_token) {

    // We have a user ID, so probably a logged in user.
    // If not, we'll get an exception, which we handle below.
    try {

        $params = array(
            'method' => 'get',
            'access_token' => $access_token
        );

        if (isset($_GET['aid']) && $_GET['aid'] != '') {
            $aid = $_GET['aid'];
            $user_album_photos = $facebook->api('/' . $aid . '/photos', $params);
            //echo "Photos<br/>"; 
            ?>

            <?php foreach ($user_album_photos['data'] as $key => $value) {
                ?>
                <div class="album">
                    <div class="frame photo_frame">
                        <div class="edit-photo-nohover" style="display:block">
                            <div><input type="checkbox" id="fbimport_id<?php echo $value['id']; ?>" value="<?= $value['id'] . ',' . $value['images']['0']['source'] . ',' . $value['name'] ?>" name="fbimport[]" > <span>Import this Memory</span></div>

                        </div>
                        <table class="test">
                            <tr><td>
                                    <a href="javascript:void(0)"><img src="<?= $value['images']['0']['source'] ?>" height="100" width="100" /></a>
                                </td>
                            </tr>
                        </table>
                        <h3 id='bottomcaption'><?php echo $value['name']; ?></h3>
                    </div><br/>
                </div>
                <?php }
            ?>


        <?php
        } else {
            $user_albums = $facebook->api('/me/albums', $params);
            echo '<h3 class="page-title">Select Your Facebook Album</h3><br/><br/>';
            foreach ($user_albums['data'] as $key => $value) {

                /* load album if not blank */
                if (isset($value['count']) && $value['count'] != '' && $value['count'] != NULL && $value['count'] > 0) {

                    /* check if album has a cover photo. if not than load a default image */
                    if (isset($value['cover_photo']) && $value['cover_photo'] != '' && $value['cover_photo'] != NULL) {
                        $user_album_cover = $facebook->api('/' . $value['cover_photo'], $params);
                        $album_thumbnail = $user_album_cover['images']['0']['source'];
                    } else {
                        $album_thumbnail = 'default_thumb.gif';
                    }
                    /* check if album has cover photo end */
                    ?>
                    <div class="album">
                        <div class="frame photo_frame">
                            <table class="test">
                                <tr><td>
                                        <a href="?aid=<?= $value['id'] ?>" ><img src="<?= $album_thumbnail ?>" height="100" width="100" /></a>
                                    </td>
                                </tr>
                            </table>
                            <h3 id='bottomcaption'><?php echo $value['name']; ?></h3>
                        </div><br/>
                    </div>

                    <?php
                }//if(isset($value['count']) && $value['count'] != '' && $value['count'] != NULL && $value['count']>0)
                /* load album if not blank end */
            }
        }
    } catch (FacebookApiException $e) {
        // If the user is logged out, you can have a 
        // user ID even though the access token is invalid.
        // In this case, we'll get an exception, so we'll
        // just ask the user to login again here.
        $login_url = $facebook->getLoginUrl();
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
    }
} else {

    // No user, print a link for the user to login
    $login_url = $facebook->getLoginUrl();
    echo 'Please <a href="' . $login_url . '">login.</a>';
}
?>


感谢您以非常易懂和清晰的方式回答