PHP + Facebook:如何在墙上上传照片?

时间:2012-11-15 23:03:30

标签: php facebook facebook-graph-api photo facebook-page

我将消息发布到我的页面墙的常用方法如下:

        $args = array(
            'access_token'  => $page_access_token,
            'message'       => $title,
            'link'          => $link,
            'name'          => 'This is title',
            'description'   => 'This is a testing of the posting on page',
            //'picture'     => 'http://www.example.com/directory/images/30.jpg'
        );

        $post_id = $facebook->api("/$pageId/feed","post",$args);

但是如何将图像发布到我的墙上 - 替代:点击上传按钮,选择图像 - >并上传,图片在墙上。

我的FTP上有一些图像,我想将这些图像上传到我的墙上。

提前致谢

3 个答案:

答案 0 :(得分:4)

https://developers.facebook.com/blog/post/498/此链接可以帮助您...

以下是使用Graph API上传照片的各种方法。这些示例假设您已实例化$ facebook对象并具有有效会话。

1 - 当前用户的默认应用程序专辑 此示例将照片上传到当前用户的默认应用程序相册。如果相册尚不存在,则会创建。

$facebook->setFileUploadSupport(true); $args = array('message' => 'Photo Caption'); $args['image'] = '@' . realpath($FILE_PATH);

$data = $facebook->api('/me/photos', 'post', $args); print_r($data); 2 - 目标专辑 此示例将照片上传到特定相册。

$facebook->setFileUploadSupport(true); $args = array('message' => 'Photo Caption'); $args['image'] = '@' . realpath($FILE_PATH);

$data = $facebook->api('/'. $ALBUM_ID . '/photos', 'post', $args); print_r($data);

答案 1 :(得分:0)

我没有使用Facebook API包含,因此我尝试将仅使用curl请求的Facebook内容直接集成到Graph API URL。

因此,要在用户的墙上发布图片,我找到的最简单的方法就是指出图片网址。

<?php
$url = "https://graph.facebook.com/me/photos?access_token=" . $FacebookToken;
$url = $url . "&url=" . urlencode("http://www.url.to/the/image.jpg");
$url = $url . "&message=" . urlencode($Description);
$url = $url . "&method=POST";

$data = file_get_contents($url); // Can change to curl if
                                 // file_get_contents is blocked on your host
?>

答案 2 :(得分:-1)

这是一个简短的例子,从我的代码中恢复过来:

$fbPost = curl_init();
curl_setopt($fbPost, CURLOPT_RETURNTRANSFER, true);
curl_setopt($fbPost, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($fbPost, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($fbPost, CURLOPT_POST, true);
curl_setopt($fbPost, CURLOPT_ENCODING, 'gzip');

$photoInfo = array(
    'access_token' => <USER_ACCESS_TOKEN>,
    'name' => <IMAGE_DESCRIPTION>,
    'url' => <ABSOLUTE_URL>/images/photo.jpg',
);

curl_setopt($fbPost, CURLOPT_URL, 'https://graph.facebook.com/<USER_ID>/photos');
curl_setopt($fbPost, CURLOPT_POSTFIELDS, $photoInfo);
$result = json_decode(curl_exec($fbPost), true);
curl_close($fbPost);