Я пытаюсь загрузить фотографию профиля в Facebook с помощью Loader () - PullRequest
0 голосов
/ 03 марта 2011

У меня проблемы с передачей URL-адреса для изображения профиля пользователя Facebook в переменную Loader ().Я использую файл PHP, чтобы обойти безопасность, и из отладки, которую я сделал, он показывает, что я получаю URL в порядке, но Loader запускает прослушиватель событий ошибки.Вот как выглядит мой файл facebookProxy.php:

<?php
    $path=$_GET['path'];
    header("Content-Description: Facebook Proxied File");
    header("Content-Type: image");
    header("Content-Disposition: attactment; filename =".$path);
    @readfile($path);
?>

, а вот мой код для загрузки URL-адреса и загрузки изображения.

function LoadMyPicture():void
{
    debug.text = "Entered loadMyPicture() function";

    var loader:Loader = new Loader();

    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, MyPictureLoaded, false, 0, true);
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, MyPictureLoadError, false, 0, true);

    var request:URLRequest = new URLRequest("facebookProxy.php");
    var variables:URLVariables = new URLVariables();

    variables.path = Facebook.getImageUrl(Facebook.getSession().uid);
    request.data = variables;

    loader.load(request);
    addChild(loader);

    debug.appendText(" \nURLRequest url: " + request.url);
    debug.appendText(" \nURLRequest data: " + request.data);
    debug.appendText(" \n" + loader.content);
}

function MyPictureLoaded(e:Event):void 
{
    debug.appendText(" \nEntering MyPictureLoaded");

    var loader:Loader = e.target.loader;
    var bitmap =  Bitmap(loader.content);
    bitmap.smoothing = true;

    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, MyPictureLoaded);
    loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, MyPictureLoadError);

    debug.appendText(" \nLoader Content: " + loader.content);


    //Note: picturePlaceholder is just a blank movie clip on the Stage
    bitmap.width = picturePlaceHolder.width;
    bitmap.height = picturePlaceHolder.height;
    picturePlaceHolder.addChild(bitmap);

    debug.appendText(" \nBitmap width: " + String(bitmap.width) +
                     " \nBitmap height: " + String(bitmap.height))
}

function MyPictureLoadError(e:Event):void
{
    debug.appendText(" \nMyPictureLoadError: Loader Error!");
}

debug.appendText ("\ nURLRequest url:" + request.url);

debug.appendText ("\ nURLRequest data:" + request.data);

debug.appendText ("\ n" + loader.content);

Эти строки отображаются следующим образом;

URLRequest url: facebookProxy.php

Данные URLRequest: path = https% 3A% 2F% 2Fgraph% 2Efacebook% 2Ecom% 2F100001902730917% 2Fpicture

null

Итак, содержимое в загрузчике пустое, как бы я отладил это?У кого-нибудь есть какие-нибудь решения, которые могли бы мне помочь?

РЕДАКТИРОВАТЬ

Я забыл упомянуть, что следовал учебнику, который не объяснял каких-либо основ о кодечто они предоставили, так что я довольно потерян для концепции загрузчика.Это учебник, которому я следовал Загрузка изображения профиля Facebook во Flash SWF с использованием открытого графика api .

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

Я смог понять это.Переменныеs.path и request.data вместе с facebookProxy.php вообще не нужны.

После изменения

var request:URLRequest = new URLRequest("facebookProxy.php");

на

var request:URLRequest = new URLRequest(Facebook.getImageUrl(Facebook.getSession().uid, large));
loader.load(request);
picturePlaceHolder.addChild(loader);

Удаление

var variables:URLVariables = new URLVariables();
variables.path = Facebook.getImageUrl(Facebook.getSession().uid);
request.data = variables;

Разрешил загрузку картинки правильно.Трудно найти современный учебник для всего этого, почему так?но я думаю, мне нужно было бы открыть новый вопрос, чтобы выяснить это.

0 голосов
/ 03 марта 2011

Строка

debug.appendText(" \n" + loader.content);

находится вне обработчика Event.COMPLETE.

Я бы добавил больше слушателей для событий open, progress и httpStatus.Событие httpStatus должно быть очень полезным.

Можете ли вы добавить отладку в ваш facebookProxy.php?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...