it-swarm.com.ru

«Нравится» страница с использованием API Graph Facebook

Используя Graph API, я бы хотел, чтобы авторизованный пользователь "лайкнул" страницу.

Я попытался опубликовать следующее

https://graph.facebook.com/${PAGE_ID}/likes?access_token=${ACCESS_TOKEN}

И я получаю HTTP-ошибку 500, сопровождаемую "Неверный параметр post_id" в теле ответа JSON. Похоже, что ресурс /likes подходит для публикации на стене, а не на странице. Как мне заставить это работать со страницей?

71
Tom Wells

Facebook объявил о поддержке URL-адресов за пределами Facebook, используя официальное встроенное действие "Мне нравится" . У вас должны быть разрешения publish_actions. URL-адрес графика для этого: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

Тем не менее, вы не можете использовать это как лайк страницы в Facebook в настоящее время, так как документация гласит :

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

42
bkaid

Обновление июнь 2016 г.

По-прежнему невозможно привязать страницу с помощью API Facebook, как указано в /{user_id}/likesстраница документации о создании/обновлении/удалении:

Вы не можете выполнить эту операцию на этой конечной точке.

В предыдущих версиях сообщение было более четким (см. Цитату ниже), но результат тот же: это невозможно.

май 2014 г.

На странице документации /{user-id}/likes говорится о публикация лайков страниц Facebook:

Вы не можете публиковать с помощью этого Edge, так как невозможно добавить страничку в Facebook через любой API . Вы должны использовать кнопку "Нравится", если вы хотите, чтобы люди могли лайкнуть страницу в вашем приложении.

Это самое очевидное и ясное утверждение, которое смогло дать мне ответ на вопрос.

10
Tamer Shlash

Если вы хотите, чтобы эта функциональность была на вкладке страницы или на холсте в Facebook (скажем, чтобы понравиться странице из похожей страницы), можно обойти то, что предложил Том Уэллс в своем ответе Люку. Сначала вы вставляете версию iframe их кнопки "Мне нравится" на свою страницу, а затем просто прослушиваете событие Edge.create в вашем JS следующим образом:

FB.Event.subscribe('Edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
        // ...
    }
);

В обратном вызове вы можете разобраться с тем, что происходит, когда пользователю понравилась страница, скажем, как переход от страницы аналогичных ворот или показ понравившегося контента.

Когда пользователь нажимает кнопку "Мне нравится" в iFrame, ваш JS-код должен получать событие Edge.create, предполагая, что iFrame был настроен для указания URL-адреса рассматриваемой страницы.

5
Keith

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

https://developers.facebook.com/docs/opengraph/actions/builtin/likes/

5
Israhack

Я считаю, что это не разрешено, за исключением определенных сайтов-партнеров, таких как Yelp. Причина в безопасности: вы можете разместить на странице какой-нибудь javascript и заставить всех, кто посещает эту страницу, "нравится" без их ведома.

Смотрите Как мне "нравится" URL? на форуме разработчиков платформы Facebook

3
Luke

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

[FBRequestConnection startForPostWithGraphPath:[NSString stringWithFormat:@"/%@/likes",{object_id}] graphObject:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
   //do you customisation post like here
}];
0
Avinash