javascript - page - plugin facebook para web
¿Cómo filtrar los usuarios más activos de la página de fans? (5)
Estoy creando un nuevo sitio web. Quiero promocionarlo utilizando otro servicio web relacionado con mi tema. Quiero enviar algunos regalos a las personas que popularizaron mi primer sitio web y mi página de fans. ¿Cómo filtrar, digamos 20 usuarios que le gustan, comparte / comenta la mayoría de mis publicaciones?
Cualquier lenguaje de programación adecuado será bueno.
[EDITAR]
Ok ... para ser honesto, estoy buscando una manera de analizar una página de fans que no es mía. Quiero enviar regalos a los usuarios más activos de la página de fans de mi competencia, para simplemente sobornarlos un poco :)
Basándome en la answer Ahmed Nuaman (también dales +1), preparé este código:
ejemplo de uso:
Para analizar los usuarios de facebook más activos de http://www.facebook.com/cern
$ python FacebookFanAnalyzer.py cern likes
$ python FacebookFanAnalyzer.py cern comments
$ python FacebookFanAnalyzer.py cern likes comments
notas: las acciones y los comentarios internos no son compatibles
archivo: FacebookFanAnalyzer.py
# -*- coding: utf-8 -*-
import json
import urllib2
import sys
from collections import Counter
reload(sys)
sys.setdefaultencoding(''utf8'')
###############################################################
###############################################################
#### PLEASE PASTE HERE YOUR TOKEN, YOU CAN GENERETE IT ON:
#### https://developers.facebook.com/tools/explorer
#### GENERETE AND PASTE NEW ONE, WHEN THIS WILL STOP WORKING
token = ''AjZCBe5yhAq2zFtyNS4tdPyhAq2zFtyNS4tdPw9sMkSUgBzF4tdPw9sMkSUgBzFZCDcd6asBpPndjhAq2zFtyNS4tsBphqfZBJNzx''
attrib_limit = 100
post_limit = 100
###############################################################
###############################################################
class FacebookFanAnalyzer(object):
def __init__(self, fanpage_name, post_limit, attribs, attrib_limit):
self.fanpage_name = fanpage_name
self.post_limit = post_limit
self.attribs = attribs
self.attrib_limit = attrib_limit
self.data={}
def make_request(self, attrib):
global token
url = ''https://graph.facebook.com/'' + self.fanpage_name + ''/posts?limit='' + str(self.post_limit) + ''&fields='' + attrib + ''.limit(''+str(self.attrib_limit)+'')&access_token='' + token
print "Requesting ''" + attrib + "'' data: " + url
req = urllib2.urlopen(url)
res = json.loads(req.read())
if res.get(''error''):
print res[''error'']
exit()
return res
def grep_data(self, attrib):
res=self.make_request(attrib)
lst=[]
for status in res[''data'']:
if status.get(attrib):
for person in status[attrib][''data'']:
if attrib == ''likes'':
lst.append(person[''name''])
elif attrib == ''comments'':
lst.append(person[''from''][''name''])
return lst
def save_as_html(self, attribs):
filename = self.fanpage_name + ''.html''
f = open(filename, ''w'')
f.write(u''<html><head></head><body>'')
f.write(u''<table border="0"><tr>'')
for attrib in attribs:
f.write(u''<td>''+attrib+''</td>'')
f.write(u''</tr>'')
for attrib in attribs:
f.write(u''<td valign="top"><table border="1">'')
for d in self.data[attrib]:
f.write(u''<tr><td>'' + unicode(d[0]) + u''</td><td>'' +unicode(d[1]) + u''</td></tr>'')
f.write(u''</table></td>'')
f.write(u''</tr></table>'')
f.write(u''</body>'')
f.close()
print "Saved to " + filename
def fetch_data(self, attribs):
for attrib in attribs:
self.data[attrib]=Counter(self.grep_data(attrib)).most_common()
def main():
global post_limit
global attrib_limit
fanpage_name = sys.argv[1]
attribs = sys.argv[2:]
f = FacebookFanAnalyzer(fanpage_name, post_limit, attribs, attrib_limit)
f.fetch_data(attribs)
f.save_as_html(attribs)
if __name__ == ''__main__'':
main()
Salida:
Requesting ''comments'' data: https://graph.facebook.com/cern/posts?limit=50&fields=comments.limit(50)&access_token=AjZCBe5yhAq2zFtyNS4tdPyhAq2zFtyNS4tdPw9sMkSUgBzF4tdPw9sMkSUgBzFZCDcd6asBpPndjhAq2zFtyNS4tsBphqfZBJNzx
Requesting ''likes'' data: https://graph.facebook.com/cern/posts?limit=50&fields=likes.limit(50)&access_token=AjZCBe5yhAq2zFtyNS4tdPyhAq2zFtyNS4tdPw9sMkSUgBzF4tdPw9sMkSUgBzFZCDcd6asBpPndjhAq2zFtyNS4tsBphqfZBJNzx
Saved to cern.html
Hay varias maneras, comenzaré con la más fácil ...
Digamos que hay un nombre de marca o #hashtag involucrado, entonces podría utilizar la API de búsqueda como tal: https://graph.facebook.com/search?q=watermelon&type=post&limit=1000 y luego iterar sobre los datos, digamos los últimos 1000 ( el
limit
param) para averiguar el usuario de modo (el que más sube) de todos los estados.Digamos que es solo una página, luego puede acceder al punto final de
/<page>/posts
(por ejemplo: https://developers.facebook.com/tools/explorer?method=GET&path=cocacola%2Fposts ), ya que eso le dará una lista de las últimas publicaciones (están paginadas para que pueda recorrer los resultados) y esto incluirá una lista de las personas a quienes les gustan las publicaciones y quienes comentan sobre ellas; A continuación, puede averiguar el modo de usuario y así sucesivamente.
En cuanto al código, puede usar cualquier cosa, incluso puede ejecutar esto localmente en su máquina usando un servidor web simple (como MAMP o WAMP, etc.) o CLI. La respuesta es todo lo que JSON y los lenguajes modernos pueden manejar. Aquí hay un ejemplo rápido que encontré para el primer método en Python:
import json
import urllib2
from collections import Counter
def search():
req = urllib2.urlopen(''https://graph.facebook.com/search?q=watermelon&type=post'')
res = json.loads(req.read())
users = []
for status in res[''data'']:
users.append(status[''from''][''name''])
count = Counter(users)
print count.most_common()
if __name__ == ''__main__'':
search()
Lo he guardado en github si quieres referirte más tarde: https://github.com/ahmednuaman/python-facebook-search-mode-user/blob/master/search.py
Cuando ejecute el código, devolverá una lista ordenada de los usuarios de modo dentro de esa búsqueda, por ejemplo, los que han publicado la mayoría de los comentarios con la etiqueta de búsqueda específica. Esto se puede adaptar fácilmente para el segundo método si desea usarlo.
Lea la lista de publicaciones en la página en la conexión de la página /feed
y haga un seguimiento de las ID de los usuarios que publicaron y comentaron en cada publicación, creando una lista de quiénes lo hacen con más frecuencia.
Luego guárdelas en algún lugar y use la lista almacenada en la parte de su sistema que decide a quién enviar las bonificaciones.
p.ej
http://graph.facebook.com/cocacola/feed devuelve todas las publicaciones recientes en la página de cocacola, y puede hacer un seguimiento de las ID de los carteles, comentaristas y usuarios para determinar quiénes son los usuarios más activos.
Tu pregunta es buena, pero es bastante difícil ... (En realidad, al principio, surgió algo de mi mente que es imposible. Entonces, construyo una solución muy diferente ...) Una de las mejores maneras es para crear una red donde sus espectadores puedan registrarse en el formulario que requirió las URL oficiales de sus páginas de redes sociales, y también, podrían elegir que no tienen este tipo de red:
“¿Quieres compartir algo de nuestra página? Por favor regístrese aquí primero .. "
Entonces, pueden obtener una URL específica que han querido compartir cuando están en su sitio web, pero no saben qué rastrean cuando visitaron esa URL específica. (Cada vez que una URL específica obtiene visitados, se rastrea un IP y la cantidad de visitas se obtiene ++ 1 en una base de datos.) Déles una URL dinámica en la parte superior de su sitio web que se encuentra en el área de texto de cada página para rastrearlas. O use scripting para automatizar la adición de una cadena de consulta de rastreo en las URL de su sitio.
¡Creo que hay un software gratuito para construir una red de afiliados para que esto sea fácil! Si sus espectadores realmente aman su sitio web, se registrarán para ser un afiliado. Pero esto es diferente, la red de afiliados es bastante diferente de una red que se menciona en los párrafos anteriores.
Pero creo que también puedes usar Google Analytics para rastrear completamente algunas referencias que no provienen de las URL con QUERY STRING dinámico como Digital Point , pero no de la otra red social como Facebook porque no obtendrás la referencia exacta Rutas con ese tipo de red social debido a la ruta de consulta. Sin embargo, puede utilizarlo para rastrear las otras redes. Además, AddThis Analytics es bueno para las URL de cadenas que no son de consulta.
Los dos tipos de referencias en Google Analytics se encuentran en el menú "Fuentes de tráfico" de INFORMES ESTÁNDAR .
- Fuentes de tráfico
- Fuentes
- Referencias
- Social
- Referencias de red
- Fuentes
Esta respuesta es bastante complicada, pero a veces, bastante útil ... ¿Aparte de eso? Por favor revise estos enlaces a continuación:
escriba un script php o jquery que se ejecute cuando el usuario haga clic en me gusta o comparta en su sitio web justo antes de realmente compartir / me gusta para fb y registre la información del usuario y la publicación que él / ella compartió / le gustó. Ahora puedes hacer un seguimiento de quién ha compartido más tu publicación.
El script PHP / Jquery actuará como intermediario, así que no use el script de compartir / me gusta de Facebook directamente. Intentaré encontrar el código que he escrito para este método. He utilizado PHP y Mysql. Trate de usar JQuery, esto le dará un mejor resultado en términos de ocultar el proceso (me refiero a que los datos se registrarán sin volver a cargar la página).