Intereting Posts
Почему моя переменная не помещается в $ _GET? PHP MYSQL – вставлять без использования имен столбцов, но с полем автоинкремента PHP Предупреждение: mysqli_query () ожидает как минимум 2 параметра, 1 задано Есть ли причина использовать ключевое слово self? Как загрузить файл с помощью ajax / jQuery с помощью Symfony2 PHP Mailer не удается подключиться к серверу Где я могу получить приложение для чата PHP / MYSQL Zend Framework: могу ли я просто получить параметры GET? Как определить глобальную переменную для Twig PHP: Mcrypt – какой режим? По умолчанию почта Laravel не работает Проблема с JQuery getJSON извлекает данные из контроллера (воспламенитель кода) Разъяснения по уязвимостям XXE во всех версиях PHP Почему некоторые операции с потоковыми массивами в PHP, похоже, не работают? ZF2 – Как изменить страницу ответов на ошибку / 404? Не только шаблон, но и установка новой модели ViewModel

Загружать изображения в специальный Facebook Album

Я могу создать альбом, используя facebook graph api, разместив данные на

http://graph.facebook.com/ALBUM_ID/albums 

он возвращает идентификатор, который не является идентификатором альбома.

Я подтвердил это двумя способами

  1. перейдя на этот альбом, помощь отличается от того, что я получил
  2. и опубликовать http://graph.facebook.com/{ALBUM_ID_I_RECIEVED}/photos , но фотография никогда не публикуется для вновь созданного альбома, а публикуется в альбом приложений по умолчанию.

Мне нужно знать реальный идентификатор альбома, чтобы я мог загружать изображения в новый альбом.

Solutions Collecting From Web of "Загружать изображения в специальный Facebook Album"

Новый php-sdk работает отлично, я только что протестировал его и вот мои комментарии:

1. Удостоверьтесь, что у вас есть правильное расширенное разрешение, которое publish_stream как для создания альбома, так и для загрузки фотографий .

2.После создания альбома с использованием приведенного ниже кода вы получите ID альбома:

 $post_data = array( 'name'=>"My Test Album", 'description'=>"My Test Album Desc" ); $data['album'] = $this->facebook->api("/me/albums", 'post', $post_data); 

PS: Я подтверждаю, что этот идентификатор не является идентификатором, который вы видите при просмотре Facebook.

3. Теперь нам нужно загрузить изображение с помощью идентификационного номера альбома «Reference»:

 $file = FCPATH . "assets/img/small1.jpg"; $post_data = array( "message" => "My photo caption", "source" => '@' . realpath($file) ); $album_id = "473425002142"; $data['photo'] = $this->facebook->api("/$album_id/photos", 'post', $post_data); 

PS: Константа FCPATH является константой Codeigniter, вы можете $_SERVER['DOCUMENT_ROOT'] или любым удобным вам способом.

И результат:
alt text

Я столкнулся с одной и той же проблемой, но с событиями. Что происходит, Facebook не возвращает фактический идентификатор события (в вашем случае, ID альбома), но вместо этого есть небольшое смещение (максимум 10). Итак, вот рабочий процесс, который вам нужно выполнить (чтобы он работал!):

  1. Публикуйте альбом. Сохраните возвращенный (поддельный) альбом id, fb_aid в вашей базе данных.
  2. Запрос для всех опубликованных альбомов текущего пользователя, зарегистрированного в FB.
  3. Прокрутите список возвращенных альбомов.
  4. Определите фактический идентификатор альбома следующим образом, проверяя, если смещение <10.
  5. Сохранить фактический идентификатор альбома в базе данных.

 $fbAlbums = $this->facebook->api(array('method' => 'photos.getalbums')); $myAlbums = $this->Album->find('all'); for ($i = 0; $i < count($fbAlbums); ++$i) { foreach ($myAlbums as $myAlbum) { $aidOffset = abs($fbAlbums[$i]['aid'] - $myAlbum['Album']['fb_aid']); if ($aidOffset != 0 // Prevents fixing an already fixed album id && $aidOffset < 10 // Checks if this is a FB ID Screw up ) { $myAlbum['Album']['fb_aid'] = $fbAlbums[$i]['aid']; $this->Album->save($myAlbum); break; // Little optimization } } } 

Теперь ваша база данных обновила идентификаторы альбомов. Ура! Разработчик: 1. Facebook API: 0.

Я знаю, что это некрасиво. Я знаю, что с этим связано много потенциальных проблем. Но он выполняет свою работу до тех пор, пока Facebook не позаботится о том, чтобы исправить его API.