Размещение изображения в альбоме Facebook с AS3 API
У меня проблемы с отправкой изображения из приложения на холсте в альбомы пользователя. Согласно документам Facebook:
Чтобы опубликовать фотографию в альбом пользователя, у вас должно быть разрешение publish_stream. Получив это, вы можете загрузить фотографию, отправив запрос HTTP POST с содержимым фотографии и необязательным описанием для одного из этих подключений к Graph API:
- https://graph.facebook.com/USER_ID/photos - фотография будет опубликована в альбом, созданный для вашего приложения. Мы автоматически создаем альбом для вашего приложения, если он еще не существует. Все фотографии, загруженные таким образом, будут добавлены в этот же альбом.
- https://graph.facebook.com/ALBUM_ID/photos - фотография будет опубликована в конкретном существующем фотоальбоме, представленном ALBUM_ID.
Итак, переходя к первому пункту, если я загружу изображение, как это...
Facebook.api("me/photos",imagePostCallback,{message:"",image:myImageBitmap,fileName:''},URLRequestMethod.POST);
... тогда я могу ожидать, что это поместит мое изображение в альбом, названный для моего приложения, которое оно создаст при необходимости?
Не так.
Что действительно происходит, когда альбом не существует, так это то, что загруженное изображение помещается в любые другие удобные альбомы, которые обычно существуют (и создаются другими приложениями). Это немного боли.
До сих пор я пробовал следующее:
- Отключение режима песочницы. Я думал, что приложение может быть не в состоянии создавать новые альбомы, потому что это было в режиме песочницы, однако отключение режима песочницы не имело никакого значения, и я могу создавать альбомы непосредственно с его включенным.
- Проверка на наличие моего альбома и создание его при необходимости. Я могу проверить свой альбом и создать его, если он не существует, но не могу загрузить изображение, потому что вызов 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, оно должно работать и загружать ваше изображение (в соответствии с тем, что я нашел).