2011-01-31 3 views
8

Итак, я играл с кнопкой facebook как кнопка, но у меня возникла проблема. У меня есть страница на facebook о какой-то благотворительной работе, которую я здесь делаю:Как «нравится» содержимое facebook извне

http://www.facebook.com/Adam.Holmes.Climbs.Kilimanjaro.

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

http://developers.facebook.com/docs/reference/plugins/like/.

Теперь моя проблема с отдельной кнопкой. На странице facebook я добавил изображения, которые некоторые пользователи «понравились» и прокомментировали и т. Д. Теперь я разместил те же изображения на своей веб-странице, где я хотел бы добавить кнопку facebook как кнопку для каждого изображения и, следовательно, отобразить все понравившиеся что изображение имеет на facebook. Я включил много разных ссылок в кнопку, но никто из них, похоже, не работает. Я пробовал а) URL страницы. б) URL-адрес изображения. в) случайные биты и летучие мыши, манипулирующие разными URL-адресами.

Я попытался просмотреть исходный код javascript, но это слишком сложно для моего понимания. Я знаю, что из кнопки вызывается функция fc_click(), которая далее вызывает другую функцию, и вскоре после этого я теряюсь и не нашел, какой url используется.

Итак, я думаю, мой вопрос: какой URL-адрес должен быть помещен в сценарий «как», чтобы я мог использовать подобную кнопку внешне в facebook?

Если информация больше необходима, скажите об этом.

Большое спасибо :)


UPDATE: Я пытался все различные комбинации или URL-х и до сих пор не имея удачу. Объект для одной из кнопок «Мне нравится» - это объект на графике, то есть Here is the object I want to like., но ни одна из этих ссылок не работает. Возможно, facebook ограничивает это, так как просто использовать URL-адрес страницы, и он отлично работает, а не отдельные элементы.

Могу ли я добавить еще раз, что мне нужна ссылка, которая должна быть помещена в тег, а не только для того, чтобы получить количество понравившихся и комментариев и т. Д. Я также начал тему на форумах разработчиков facebook here, но никто не ответил с решением.

Еще раз спасибо.


UPDATE 2: Как отметил "Майлс Грей" код на самом деле оказывается в HTML как:

<label onclick="this.form.like.click();">

Я не уверен, если есть способ для доступа к форме с внешней страницы, поскольку она не будет иметь правильную ссылку this. Кто-нибудь может пролить свет на то, можно ли это сделать, и если да, то как? Конечно, если это можно сделать, то правильная ссылка на this позволит мне любить контент извне.

+0

Используете ли вы OpenGraph? –

+0

Нет, я просто использую теги . –

+0

Что касается вашего второго обновления, 'this' - это просто объект' window', поэтому, если вы можете захватить соответствующий объект окна, ваш штраф. – Raynos

ответ

1

Боюсь, что вы хотите, это не возможно. Быстрый "доказательства":

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<fb:like href="http://www.facebook.com/platform" show_faces="true" width="450"></fb:like> 

Это будет работать нормально, но используя его Graph API интерпретации:

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<fb:like href="https://graph.facebook.com/19292868552" show_faces="true" width="450"></fb:like> 

Это не будет работать!

Я не думаю, что вы должны беспокоиться о поиске «обходной путь/хак» или пытается проверить и отладить страницу фото на Facebook, потому что ДАЖЕ если вы нашли способ использования их как функциональность извне, я уверен, что вы столкнетесь с юридическими проблемами с Facebook!

Теперь, что бы я сделал, отслеживание, когда пользователь «любит» фотографию на вашем веб-сайте и всплывающее окно или DIV под кнопкой LIKE, чтобы побудить его перейти на страницу фотографий в Facebook для поддержки он (как он) там тоже!

Это может быть сделано с помощью edge.create событие:

FB.Event.subscribe('edge.create', function(response) { 
    // Encourage the user to support your cause in Facebook too! 
    $("div_with_a_link_to_the_photo_page_on_facebook").show(); 

    // or using a dialog or whatever effect you like 
    $("#facebook_support").dialog(); 
}); 

PS: Я использую JQuery здесь

Также на самом деле, как Facebook «объекты» внешне вам нужно приложение, и что-то как и мой ответ here, но я думаю, вы не хотите этого делать.

1

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

Пожалуйста, просмотрите here. Как вы можете видеть, каждый объект в facebook является частью Graph API. Таким образом, у этого есть свой уникальный идентификатор свойств. Согласно фотографиям вы можете посмотреть here и увидеть, что каждая фотография имеет свой собственный уникальный идентификатор.

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

Я бы сказал, что лучше всего это сделать initialize the JavaScript SDK, perform an FQL query по конкретному номеру picture, который вы хотите, и получить данные.

Теперь в соответствии с отображением: так как на facebook нет, у вас есть специальный плагин для показа фотографий на внешних веб-страницах, часть дисплея - сложная часть. Вся информация получена в объекте JSON, который вы можете отобразить любым способом. Я бы предложил, чтобы сделать опыт более социальным, создав для каждой фотографии такую ​​же кнопку с идентификатором этой фотографии в Graph API. Docs are here.

+0

У меня нет проблем с использованием графического API, я понимаю это довольно подробно. Я не извлекаю изображение из facebook, это просто один и тот же образ. Использование графика api заставит пользователя «Подключиться к facebook», который не является моей целью здесь, мне просто понравилось бы количество понравившихся, как я могу, с любой другой «подобной» страницей на facebook. –

+0

@ Адам - ​​это неправда. Запрос данных об изображении ничего не требует от пользователя. – t0mgs

+0

Но получение количества понравившихся или даже любых данных из графика api не говорит мне, какую ссылку мне нужно разместить в моем сценарии «».Я пробовал все ссылки, которые доступны для изображения, и все они потерпели неудачу. –

1

AFAIK Facebook использует внутренний счетчик стат, который каким-то образом связан с photo.php с ID фото и альбом ID ...

Если вы посмотрите на исходный код, который вы можете увидеть (это нравится):

<label onclick="this.form.like.click();"><i class="img sp_29yryj sx_182771" title="Like this item"></i></label> 

И дальше (Чтобы увидеть людей, которые любили его):

<a href="/browse/?type=likes&amp;id=1516817795900" rel="dialog" ajaxify="/ajax/browser/dialog/?type=likes&amp;id=1516817795900" title="See people who like this item">16 people</a> 

Если вы можете как-то работать, что URL на основе идентификатора изображения вы должны быть отсортированы, ТМК, казалось s FB используют какую-то пользовательскую библиотеку, чтобы как идентификатор изображения.

+0

Казалось бы, что

2

Я не думаю, что на Facebook есть кнопка, которая не является страницей, с <fb:like>. Чтобы проверить это, я попробовал пару вещей на фотографии, которую я разместил на своей стене. Как вы поняли, ни один из URL-адресов не работает.

Таким образом, вы можете создать свою собственную кнопку. С помощью Graph API вы можете вытаскивать объекты из собственного фида с помощью /me/feed. Простейшая вещь, вероятно, будет использовать изображения из фида; если вы разместили образ, вам понадобится таблица сопоставления для объектов в вашем канале. Каждый объект из вашего фида будет иметь счетчик Like.

Update

Перечитайте пост, и это выглядит, как вы не хотите, чтобы пользователь должен войти. На графике API может быть вызван со стороны сервера. Как вы подключаетесь свой собственный канал, нужно просто дать автономные права приложения на свой собственный корм, и текущий пользователь не должен будет войти.

Update 2

Оказывается /POST_ID/likes работает только на должности - я получаю «приложение должно быть в белом списке» на что-нибудь еще.

0

Используя как плагин:

<div class="fb-like" data-href="**http://graph.facebook.com/[object_id]**" data-send="false" data-width="270" data-show-faces="false" data-colorscheme="dark" data-font="arial"></div> 

(просто положить в свой собственный объект ID). Моя проблема в том, что я не могу понять, как определить, понравился ли пользователь этому объекту, не будучи зарегистрированным в приложении (а не просто вошел в fb в целом).

Для этого вашему приложению требуется extended_permissions, например, в этом случае ему требуется разрешение read_stream. После этого вы можете запросить подобную таблицу с помощью fql.

Смежные вопросы