Вопрос в значительной степени указан в названии, но, если говорить более конкретно, я работаю над конкурсом в 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 :: После долгих попыток кажется, что я не могу пометить кого-то как страницу или в альбоме страницы. Я постараюсь найти альтернативу, я думаю.