Загрузка изображения на Facebook через внешний скрипт php - PullRequest
1 голос
/ 30 января 2012

Я разработал приложение для викторины Flash для Facebook, которое по завершении вызывает скрипт php.Функция php-скрипта состоит в том, чтобы сгенерировать изображение из POST-данных, отправленных флеш-памятью, и затем разместить его на стене пользователя.

Это было бы все аккуратно и красиво, но по какой-то причине изображение никогда не загружаетсяВозможно, потому, что когда я его вызываю, это похоже на http://www.myhost.com/appfolder/img-generate.php,, а внутри скрипта SDK facebook появляется ошибка Oauth, возможно потому, что он не встроен в их холст.

Мой вопрос:

Если я хотел бы, чтобы мой php-скрипт генерировал изображение и загружал его на стену fb, то как мне вызвать его со вспышки?

Это код AS2, который я сейчас использую:

callRemoteFile = function(ourVariable:Number) {
        var result_lv:LoadVars = new LoadVars();
    result_lv.onLoad = function(success:Boolean) {
                if (success) {
                        if (result_lv.message=="success")
                                trace("done! "+result_lv.returnValue);
                        else
                                trace(result_lv.message);
                } else {
                        trace("Error connecting to server");
                        return false;
                }
    };
    var send_lv:LoadVars = new LoadVars();
    send_lv.ourVariable = ourVariable;
    send_lv.sendAndLoad(" http://www.myhost.com/appfolder/img-generate.php", result_lv, "POST");
}
callRemoteFile(String(health.toString()));

и это PHP-код img-generate (я опустил большинство функций изображения и получение данных POST, потому что они не связаны с моей проблемой здесь):

include 'facebook.php';
$app_id = "111111111111111";
$app_secret = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
$facebook = new Facebook(array(
        'appId' => $app_id,
        'secret' => $app_secret,
        'cookie' => true,
));

$date = date("ymdHis");

$im = imagecreatefromjpeg('myimg.jpg');
imagejpeg($im,'temp/'. $date . md5($ida) . '.jpg');

$facebook->setFileUploadSupport(
    "http://" . $_SERVER["SERVER_NAME"]
);

$photo = $facebook->api("/me/photos", "POST", array(
    source => "@" . 'temp/'. $date . md5($ida) . '.jpg',
    message => "Something to display with the image"
));

Если я просто перехожу на php в своем браузере, это дает мне следующее:

Неустранимая ошибка: Uncaught OAuthException: Неверная подпись маркера доступа OAuth.добавляется в /home/a01223445/public_html/appfolder/base_facebook.php в строке 1039

Если я смотрю тот же php через холст Facebook, он работает отлично.Моя проблема: холст покажет вспышку, и я хочу, чтобы php оценивался в молчании во время работы вспышки.

Извините за длинный вопрос,

Заранее благодарю за помощь!

1 Ответ

1 голос
/ 15 марта 2012

У меня была та же проблема, что и мне, чтобы добавить realpath ()

$path = realpath('/'. $imgcode. '.jpg');
array(
        'source' =>  "@" . $path,
...
...