OAuthException при публикации на стене FaceBook с использованием PHP? - PullRequest
0 голосов
/ 03 апреля 2012

Я пытаюсь сделать публикацию на стене FaceBook, используя PHP, и получаю сообщение об ошибке:

Uncaught OAuthException: (#200) The user hasn't authorized the application to perform this action thrown in /hermes/web09/b924/moo.freecostwebscom2/picslanda/fbpic/library/base_facebook.php on line 1106"

Используя следующий код клиента:

$app_id = "257711244318488";
$app_secret = "dc4b279079e4eaff6e5b9ef37fb48402";
$facebook = new Facebook(array(
         'appId' => $app_id,
         'secret' => $app_secret,
         'cookie' => true
        ));
$fbcheck= $facebook->getUser();

if(is_null($fbcheck) or !$fbcheck or $fbcheck==0)
    {
     header("Location:{$facebook->getLoginUrl(array('scope' => 'user_status,publish_stream,user_photos'))}");
     exit;
    }
if($_SERVER['REQUEST_METHOD'] =='POST'){
    //$img = realpath($_FILES["pic"]["tmp_name"]);
    $facebook->setFileUploadSupport("http://" . $_SERVER['SERVER_NAME']);
    $photo = $facebook->api('/me/photos', 'POST', 
    array(
            'source' =>  $urlParser->fbpostpic($input['ik']),
            'message' => 'This photo was uploaded via www.Picslanda.com'
    )
    );

            echo '<p><a target="_blank" href="http://www.facebook.com/photo.php?fbid='.$photo['id'].'">Click here to watch this photo on Facebook.</a></p>';
}

$attachment = array(
    'message' => 'Hello friends  ',
    'name' => "My Name",
    'caption' => "My caption",
    'link' => "www.site.com",
    'description' => 'Description.',
    'picture' => "url",
    'actions' => array(array(
        'name' => 'Get Search',
        'link' => 'http://www.google.com'
        ))
        );
    $result = $facebook->api(
    '/me/feed/',
    'post',
    $attachment
    );

Есть ли какие-либо видимые ошибки в моем коде, которые могут быть причиной этого? Как я могу отладить эту ошибку?

Ответы [ 2 ]

1 голос
/ 18 мая 2012

поставьте это перед загрузкой изображения с fb api<br />

$facebook->setFileUploadSupport(true);
0 голосов
/ 03 апреля 2012

В PHP SDK v.3.xx 'req_perms' заменено на 'scope'.

Так вместо

header("Location:{$facebook->getLoginUrl(array('req_perms' => 'user_status,publish_stream,user_photos,offline_access'))}");

Попробуйте

header("Location:{$facebook->getLoginUrl(array('scope' => 'user_status,publish_stream,user_photos,offline_access'))}");
...