OAuthException (#240) Этот пользователь isn' t позволил загружать фотографии на этот object' s стена

Это - мой cron.php

<?php
ob_start();

// Load the required files

require_once('fb_src/facebook.php');
require_once('includes/fb.php');
require_once('includes/db.php');
require('includes/timezone.php');


// Connect to the DB

$con = mysql_connect(SERVER,USERNAME,PASSWORD);
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
mysql_select_db(DB, $con);

$result = mysql_query("SELECT * FROM queue WHERE date_to_post='" . date("o-m-d") . "'");

// Fetch in the DB the content that is supposed to be posted today and echo it out

date_default_timezone_set('CST');
echo "Date: " . date("o-m-d");  
echo "
Time: " . date(g) . ":" . date(i) . " " . date(A); // Connect to FB $facebook = new Facebook(array( 'appId' => APPID, 'secret' => SECRET, 'cookie' => true, 'fileUpload' => true )); while($row = mysql_fetch_array($result)) { echo "ID: " . $row['id']; } echo "


"; echo "Connected...
"; // Post the content in FB echo "

Query: SELECT * FROM queue WHERE date_to_post='" . date("o-m-d") . "'"; $result2 = mysql_query("SELECT * FROM queue WHERE date_to_post='" . date("o-m-d") . "'"); while($row = mysql_fetch_array($result2)) { $picture_path_query = mysql_query("SELECT * FROM messages WHERE id='" . $row['message_id'] . "'"); while ($row_for_picture_path = mysql_fetch_array($picture_path_query)) { $picture_path = "@" . realpath($row_for_picture_path['picture']); } echo "
Picture Path: $picture_path
"; echo "
Message ID: " . $row['message_id']; /* if ((substr(strstr($row['time_to_post'], ':'), 0, 2) == ":" . substr(date('i'), 0, 1)) && (date(g) == substr($row['time_to_post'], 0, 1)) && (date(A) == $row['am_or_pm'])) { */ try { echo "

About to post...

"; $uid = $row['uid']; $message = $row['message_to_post']; $picture = $picture_path; echo "PIC: $picture

"; $access_token = $row['access_token']; $response = $facebook->api( "/$uid/photos/", 'post', array( 'access_token ' => $access_token, 'message' => $message, 'source' => $picture, //@-sign must be the first character ) ); echo "Reponse: $response"; //} echo "Posted message #" . $row['id'] . " with message '" . $row['message_to_post'] . "' and picture path '" . $row['picture'] . "' by user: '" . $uid . "'"; } catch(FacebookApiException $e) { $login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' )); print_r($e->getType()); print_r($e->getMessage()); } } //} echo "

Done. - Logout"; ob_flush(); ?>

Я получаю UID и символ доступа от MySQL db. Тот пользователь позволил моему приложению отправлять от их имени и получать доступ к ленте новостей. Как только я управляю сценарием, который я получаю:

OAuthException (#240) Этот пользователь не разрешают загрузить фотографии на стену этого объекта

0
nl ja de

1 ответы

Похоже, что вы пытаетесь опубликовать эту фотографию к стене пользователя. Ваш API relative_url был бы менее подвержен ошибкам, если вы используете /me/photos вместо /$uid/photos . access_token владелец диктует, кто меня .

Другие мысли: вы проверили сохраненный access_token в вашей базе данных с Отладчик Facbook чтобы удостовериться это действительно, на самом деле принадлежит пользователю, которого вы ожидаете, и имеет правильные разрешения? Кроме того, вы утвердили сохраненный uid , чтобы быть уверенными, что это правильно?

2
добавлено
Это было моей первой мыслью также, тот $uid был пустым или пустым
добавлено автор Igy, источник
Я изменил $uid на меня, и он не размещает фотографию к user' s стена. Это не возвращает ошибку на этот раз. Я утвердил access_token и удостоверился с отладчиком, что это принадлежит правильному пользователю. У этого также есть правильные разрешения.
добавлено автор Marcos Rodriguez, источник
Это успешно отправляет, если есть сеанс браузера с соответствующим вошедшим аккаунтом в Facebook. Я пытаюсь заставить этот сценарий быть выполненным работой крона, не будучи должен к логину сидеть в Facebook.
добавлено автор Marcos Rodriguez, источник