esto sólo es posible con las APIs heredadas, o con la user_likes
permission. Como quiera una solución sin permisos específicos, le mostraré 2 métodos. Úselos en combinación con AJAX para actualizar la página cuando el usuario presione like
.
Opción 1) API REST
Utilizando el API anterior, es posible utilizar Pages.IsFan
https://api.facebook.com/method/pages.isFan?
page_id=...&
uid=...&
access_token=...
hacer esto en C# como sigue.
var appID = "....";
var appSecret = "....";
var uid = "....";
var pageId = "....";
WebClient client = new WebClient();
var appAuthUri = string.Concat("https://graph.facebook.com/oauth/access_token?",
"client_id=", appID,
"&client_secret=", appSecret,
"&grant_type=", "client_credentials"
);
var response = client.DownloadString(appAuthUri);
var access_token = response.Split('=')[1];
var isFanUri = string.Concat("https://api.facebook.com/method/pages.isFan?",
"format=", "json",
"&page_id=", pageId,
"&uid=", uid,
"&access_token=", access_token
);
response = client.DownloadString(isFanUri);
bool isFan;
bool.TryParse(response, out isFan);
Opción 2) del lado del cliente
El método FBXML
. Esto se hace con Javascript en el cliente, al suscribirse a un evento cuando el usuario hace clic en el botón like
. Está documentado here.
¿Cómo puedo saber cuándo un usuario hace clic en el botón Me gusta?
Si está utilizando la versión XFBML del botón, puede suscribirse a el evento 'edge.create' a través de FB.Event.subscribe.
Generar un botón como FBXML here.
<div id="fb-root"></div>
<script>(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js#appId=132240610207590&xfbml=1";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));</script>
<div class="fb-like" data-href="http://www.thecodeking.co.uk" data-send="true" data-width="450" data-show-faces="false"></div>
luego suscribirse al evento edge.create
utilizando el Javascript SDK. Coloque este código en el documento BODY
preferiblemente justo antes del final.
<script type="text/javascript">
<!--
window.fbAsyncInit = function() {
FB.init({ appId: '245693305442004', status: true, cookie: true, xfbml: true });
FB.Event.subscribe('edge.create',
function (href, widget) {
// Do something here
alert('User just liked '+href);
});
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
};
//-->
</script>
¿Podría explicar por qué la respuesta existente no es lo que está buscando? –
Porque necesita permisos, necesito un código sin obtener permiso como woobox. – Xenon