Вопрос в значительной степени относится к названию, но, если быть более конкретным, я работаю над конкурсом 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; } }
Любая помощь будет оценена по достоинству. Заранее спасибо!
EDIT :: Теперь я частично отработал, используя вторую часть кода, но только если сначала удалить параметр «access_token» из публикации фотографий. В принципе, он работает, только если я загружу его в личный альбом. Но это все зависит от того, что я хочу. Когда я загружаю его в альбом со страницы, он говорит, что я попросил запросы тегов, но в моей личной учетной записи, которую я пометил, я ничего не получаю. Baaaah.
RE-EDIT :: После многих попыток кажется, что я не могу пометить кого-либо в качестве страницы или в альбомной странице. Полагаю, я попытаюсь найти альтернативу.