Как включить разрешение на загрузку файлов? - PullRequest
0 голосов
/ 12 декабря 2011

Я пытаюсь загрузить изображения, созданные в приложении Flash, в альбом на Facebook. Это работало ранее в этом году, но пересматривая код, я теперь получаю следующее OAuthException:

(# 324) Требуется загрузить файл

Я использую самую последнюю версию API-интерфейса ActionSccript Facebook. Настройка работает так:

Сначала я проверяю подлинность с помощью PHP, чтобы убедиться, что пользователи дали разрешение, прежде чем ждать загрузки Flash. Я запрашиваю разрешения publish_stream и user_photos. Токен доступа возвращается корректно.

Как только пользователь аутентифицирован, Flash загружается и выполняет свою собственную инициализацию, передавая fileUpload=true как часть объекта init:

var initObject:Object = {
    channelUrl : "myChannelURL.html",
    fileUpload : true
}
Facebook.init(
    'myAppID',
    myCallbackFunction,
    initObject,
    myAccessToken
);

Кажется, это работает, как и ожидалось, обратный вызов получает идентификатор текущего пользователя.

В конце моего приложения я помещаю растровый объект в заранее определенный альбом:

Facebook.api(
    albumID+"/photos",
    onImagePost,
    {
        message:"",
        image:new Bitmap(myBitmapData),
        fileName:''
    },
    URLRequestMethod.POST
);

На данный момент Facebook возвращает ответ 400:

"error": {
    "message": "(#324) Requires upload file",
    "type": "OAuthException"
}

Что еще мне нужно сделать, чтобы включить это разрешение?

Ответы [ 2 ]

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

Оказывается, это не было ошибкой разрешений вообще. С тех пор, как я в последний раз развернул этот код, Facebook немного ужесточил свои ограничения, и параметр fileName, передаваемый как часть вызова API, больше не может быть пустой строкой. Простая передача любого старого текста в качестве имени файла устраняет проблему.

Facebook.api(
    albumID+"/photos",
    onImagePost,
    {
        message:"",
        image:new Bitmap(myBitmapData),
        fileName:'FILE'  // required to be non-empty
    },
    URLRequestMethod.POST
);
0 голосов
/ 12 декабря 2011

Я не уверен, что это решение, которое может быть переведено в SDK Actionscript ... Но в PHP SDK есть метод внутри SDK facebook, который называется setFileUploadSupport - попробуйте поискать в кодеместо для установки этого параметра на true.

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