Как загрузить изображение с помощью токена доступа? - PullRequest
1 голос
/ 21 декабря 2011

Я создаю этот URL из jquery с токеном доступа

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 (который находится в моем URL) в моем коде для загрузки изображения?

1 Ответ

1 голос
/ 21 декабря 2011

Вам необходимо получить токен доступа пользователя для выполнения каких-либо действий от имени пользователя.Попробуйте использовать следующий код ...

$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');
...