Размещение изображения в альбоме Facebook с AS3 API

У меня проблемы с отправкой изображения из приложения на холсте в альбомы пользователя. Согласно документам Facebook:

Чтобы опубликовать фотографию в альбом пользователя, у вас должно быть разрешение publish_stream. Получив это, вы можете загрузить фотографию, отправив запрос HTTP POST с содержимым фотографии и необязательным описанием для одного из этих подключений к Graph API:

  1. https://graph.facebook.com/USER_ID/photos - фотография будет опубликована в альбом, созданный для вашего приложения. Мы автоматически создаем альбом для вашего приложения, если он еще не существует. Все фотографии, загруженные таким образом, будут добавлены в этот же альбом.
  2. https://graph.facebook.com/ALBUM_ID/photos - фотография будет опубликована в конкретном существующем фотоальбоме, представленном ALBUM_ID.

Итак, переходя к первому пункту, если я загружу изображение, как это...

Facebook.api("me/photos",imagePostCallback,{message:"",image:myImageBitmap,fileName:''},URLRequestMethod.POST);

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

Не так.

Что действительно происходит, когда альбом не существует, так это то, что загруженное изображение помещается в любые другие удобные альбомы, которые обычно существуют (и создаются другими приложениями). Это немного боли.

До сих пор я пробовал следующее:

  1. Отключение режима песочницы. Я думал, что приложение может быть не в состоянии создавать новые альбомы, потому что это было в режиме песочницы, однако отключение режима песочницы не имело никакого значения, и я могу создавать альбомы непосредственно с его включенным.
  2. Проверка на наличие моего альбома и создание его при необходимости. Я могу проверить свой альбом и создать его, если он не существует, но не могу загрузить изображение, потому что вызов POST Facebook.api загрузить изображение не удастся, если оно не вызывается как прямой результат взаимодействия с пользователем.

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

1 ответ

Я предполагаю, что вам нужен access_token в ваших параметрах:) Когда вы публикуете что-то на Facebook пользователя, вам всегда нужно это (не всегда необходимо при получении информации). Способ получения accesstoken показан ниже:)

public function post():void
{
    var _params:Object = new Object();

    _params.access_token = Facebook.getSession().accessToken;
    _params.message = "";
    _params.image = myImageBitmap;
    _params.fileName = "";

    Facebook.api("me/photos", imagePostCallback, _params, URLRequestMethod.POST);
}

также убедитесь, что у вас есть необходимые разрешения при запросе разрешений в вашем приложении.

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

Итак, я немного пропустил ваше редактирование там;) должно быть возможно создать свой собственный альбом. Посмотрите на этот php-код для графа API. Код также должен быть в состоянии проанализировать в AS3.

http://developers.facebook.com/blog/post/498/

EDIT2

хорошо, я сделал еще несколько копаний (казалось, интересно знать). Это на самом деле должно работать при использовании графа API.

FB.api('/me/albums', albumCreateCallback, {name: 'name of the album', message: 'description of the album'}, URLRequestMethod.POST);

Когда вы затем вызываете еще один вызов API для загрузки вашего изображения в albumCreateCallback, оно должно работать и загружать ваше изображение (в соответствии с тем, что я нашел).

Другие вопросы по тегам