如何使用访问令牌上传图像?

时间:2011-12-21 16:51:14

标签: php facebook access-token

我正在使用访问令牌

从jquery创建此URL
www.mysite.com/xyz.php?access_token=valid_access_token&id=1

并上传照片我在xyz.php

中使用此代码
$facebook = new Facebook(array(
            'appId' => 'my_app_id',
            'secret' => 'my_app_secret',
        ));

// Get User ID
$user = $facebook->getUser();

 $facebook->setFileUploadSupport(true);
$args = array('message' => 'my_message');
                copy($image, 'tmp/file.jpeg');
                $args['image'] = '@' . realpath('tmp/file.jpeg');
                $data = $facebook->api('me/photos', 'post', $args);
                unlink('tmp/file.jpeg');

但它不起作用。我收到此错误

Uncaught OAuthException: An active access token must be used to query information about the current user.

我创建了一个访问令牌。为什么我收到此错误? 如何在我的代码中使用accessToken(在我的网址中)上传图片?

1 个答案:

答案 0 :(得分:1)

您需要获取用户的访问令牌才能代表用户执行任何操作。尝试使用以下代码...

$facebook = new Facebook(array(
  'appId' => 'my_app_id',
  'secret' => 'my_app_secret',
));

// Get User ID
$user = $facebook->getUser();

if (!$user)
{
    // User is not logged in or hasn't added the application!

    $login_url = $facebook->getLoginUrl(array(
        'scope' => 'publish_stream,user_photos,photo_upload',
    ));

    die('<script>top.window.location = "' . $login_url . '";</script>');
}

$facebook->setFileUploadSupport(true);
$args = array('message' => 'my_message');
                copy($image, 'tmp/file.jpeg');
                $args['image'] = '@' . realpath('tmp/file.jpeg');
                $data = $facebook->api('me/photos', 'post', $args);
                unlink('tmp/file.jpeg');