Пометка фотографий на Facebook с помощью Graph API / PHP SDK - PullRequest
1 голос
/ 24 августа 2011

Вопрос в значительной степени указан в названии, но, если говорить более конкретно, я работаю над конкурсом в Facebook для клиента, в котором люди должны загружать фотографии, чтобы принять в нем участие после принятия правил и подписки и т. Д.

После долгого пути, полного обманов (вот что я попробовал, в итоге не получилось:

  • загрузка в альбом пользователя с маркировкой страницы: нет, не может пометить страницу
  • загрузка в общедоступный альбом на странице, например, "фанатские фотографии" или настенные фотографии? Я ничего не могу найти о способе сделать это, хотя это был бы мой предпочтительный способ.)

Итак, у меня появилась идея: я бы сделал это в два этапа. Сначала пользователь подписывается и загружает фотографию на мой сервер PHP. Затем другое, другое приложение с разрешениями для учетной записи, имеющей страницу, будет управлять ей, загружать все фотографии с интервалом в 5 минут (то есть, вы подписываетесь, через 5 минут, ваша фотография загружена.)

Пока все хорошо; Мне не нравится логика этого, но это единственный способ, который я нашел! Итак, я сделал базу, я могу опубликовать фотографию с подписью в качестве страницы в специальном альбоме приложения. НО! Я не могу никого отмечать на этих фотографиях. Может быть, вы не можете пометить как страницу, может быть, вы не можете пометить в альбомах страницы, может быть, у меня нет необходимых разрешений (у меня есть stream_publish, user_photos, friends_photos, offline_access, и я мог бы добавить что угодно, так как в любом случае это приложение для личного пользования). Ох, и пользователь, которого я пытаюсь пометить, является администратором как для приложения, так и для страницы (и ему нравится страница). Я не знаю, но это сводит меня с ума. Я ненавижу официальную документацию, здесь нет примера кода, вы должны выяснить большинство вещей, пройти через метод проб и ошибок или найти в Интернете людей, которые сделали это и поделились, как это сделать. Неприятно, когда у вас мало времени на завершение проекта для клиента без перерасхода бюджета.

В любом случае, вот моя ошибка, которую я постоянно получаю, когда пытаюсь отметить кого-то на фотографии из любого альбома:

OAuthException: (#322) Invalid photo tag subject

А вот код, который я использую для загрузки фотографии с сервера на Facebook.

if ($user) {
  try {
    $page_info = $facebook->api("/$page_id?fields=access_token");
if( !empty($page_info['access_token']) ) {
   // First method, at the same time as upload. Upload works but no tags
   $args = array(
   'access_token'  => $page_info['access_token'],
   'source' => '@' . realpath($FILE_PATH),
   'message' => "test"
   'tags' => array(
     array(
      'tag_uid'=> "MY_USER_ID",
      'x'      => 0,
      'y'      => 0
     ))
   );
   $post = $facebook->api("/$page_id/photos","post",$args);
   $postID = $post['id'];

   // Second method I'm trying. No tags.
   $tag = $facebook->api("/$postID/tags/MY_USER_ID","post");
   print_r($tag);

}
  } catch (FacebookApiException $e) {
error_log($e);
$user = null;
  }
}

Любая помощь будет оценена. Заранее спасибо!

РЕДАКТИРОВАТЬ :: Теперь у меня получилось, что он частично работает, используя вторую часть кода, но только если я сначала уберу параметр "access_token" из публикации фотографий. По сути, это работает, только если я загружаю его в личный альбом. Но это все, что я получаю от этого. Когда я загружаю его в альбом со страницы, он говорит, что запросил теги, но в моем личном аккаунте, который я отметил, я ничего не получаю. Baaaah.

RE-EDIT :: После долгих попыток кажется, что я не могу пометить кого-то как страницу или в альбоме страницы. Я постараюсь найти альтернативу, я думаю.

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