Completar formulario HTML de facebook

Iniciado por GonzaFz, 31 Octubre 2012, 13:40 PM

0 Miembros y 1 Visitante están viendo este tema.

GonzaFz

El titulo resume un poco lo que quiero hacer.
Primero explico el problema: En mi pais/provincia existen grupos en facebook para comprar y vender cosas. Muchas personas los utilizan por lo que es muy interesante. Lo malo de este sistema es que debes estar todo el dia en la PC comentando tu post para que este se encuentre entre los primeros y así todos lo vean.

Posible solución: Hace mucho tiempo estuve en busca de como hacer un bot que reconozca imagenes y realice acciones si las encuentra, y en ese tiempo me encontre con codigos para asignar valores a formularios web (HTML). Ahora me puse a pensar y creo que seria ideal crear un programa que escriba un comentario y lo envie, y el mismo tenga un tiempo de descanso de X tiempo cosa que no sea tanto spam.

Ahora bien, con google chrome pude conseguir el ID del textbox de los comentarios, el codigo completo seria:
Código (html4strict) [Seleccionar]
<textarea name="add_comment_text_text" class="textInput mentionsTextarea uiTextareaAutogrow uiTextareaNoResize UFIAddCommentInput DOMControl_placeholder" title="Escribe un comentario..." placeholder="Escribe un comentario..." id=".reactRoot[49].[1][3]..[1]...[0].[1]..[1]." aria-expanded="false" aria-label="Escribe un comentario..." style="">Escribe un comentario...</textarea>

Ahí podemos ver el ID del cuadro de texto, entonces en mi codigo hago la siguiente llamada
WebBrowser1.Document.GetElement(".reactRoot[49].[1][3]..[1]...[0].[1]..[1].").SetAttribute("value", textbox1.Text);
Ese codigo logra llenar el cuadro de texto, cuando lo vi dije no puede ser que lo haya logrado, pero cuando presiono "Enter" para enviar el mensaje facebook me devuelve que hay un error y que estan trabajando para solucionarlo.
Intente cambiar el "value" por "text" pero no logré nada. Por un lado creo que es una forma de seguridad de facebook pero pienso y es muy raro que cuando YO presiono enter no lo envie.

Entonces no se que hacer, ahora probare obtener el foco del cuadro de texto antes de enviar el mensaje, quizás es un sistema de seguridad de facebook para evitar los bots pero lo dudo...

Si alguien tiene una idea para ayudarme le agradeceria.

Novlucker

#1
Supongo que eso lo estas haciendo con la clase WebBrowser ¿verdad?
¿Por que no intentas con la API de Facebook? :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

GonzaFz

#2
Eso estaba pensando hace un rato cuando lei este post http://estebanfuentealba.wordpress.com/2011/04/23/bot-spammer-en-el-chat-de-facebook-con-jquery/ pero no sabia como buscar "codigo ajax facebook", me olvide que se llama api xD!

Hm porque no soy un gran programador, solamente se lo que necesito para lograr lo que quiero pero empezare a investigar sobre esa api :3! Y si, lo hago con WebBrowser (en el codigo mio me equivoque el GetElement es GetElementById)

Gracias =), comenzare a investigar

--
Edito
Poco a poco voy entendiendo, gracias a tu ayuda veo todo mucho mas facil! (pero demasiado)
Si uno ingresa https://graph.facebook.com/POST_ID/comments recibes los comentarios del post. Muy interesante.
Luego de eso encontre lo siguiente:
Create

You can write to the POST_ID/comments connection to post a comment to the post by issuing an HTTP POST request with the publish_stream permission and following parameters.

Parameter    Description    Type    Required
message   Comment text   string    yes

Lo que no llego a comprender es como utilizarlo, es decir, segun lo que vengo viendo para hacerlo debo agregar otro tipo de codigo en mi programa en c#, algo asi como si fuese a agregar codigo javascript dentro del c# pero no se como. Si estoy mal corrijanme ..
Buscare como hacer POST en C# y creo que con eso podre seguir.

Seguire buscando :D


---
Vuelvo a editar
Leyendo un poco me encontre sobre algo de permisos llamado "Access_token" pero no logro entender cuando se debe ocupar ni para que sirve. Me esta matando!
En segundo lugar no se muy bien la sintaxis para hacer un POST a https://graph.facebook.com/OBJECT_ID/comments con el parametro Message y obviamente a el le sigue el mensaje.
Por favor agradeceria su ayuda! O por lo menos si saben de algun foro dedicado a la API de facebook que tenga que ver con C# les agradeceria.

Saludos.

Novlucker

Claro, el "problema" es que las aplicaciones utilizan oAuth como sistema de autenticación, por lo cual debes de obtener un token para poder realizar login en nombre de alguien, y esa app debe de estar autorizada por el titular.

Se podría ver de utilizar un SDK como este, pero el problema que tiene es que esta enfocado más bien a aplicaciones web y WPF-


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

seba123neo

y si no me equivoco creo que necesitas una api key que te proveen para mandar en las peticiones, como en todas las apis.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

GonzaFz

Pero si o si necesito esa api key? Por que en realidad , o sea , yo solo quiero publicar desde mi cuenta, no quiero hacerlo en nombre de otros ni nada sino de la que esta logueada en mi computadora..

Novlucker

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

GonzaFz

#7
Al fin consegui una DLL ya que la api se instalaba por NuGet y si tenes visual C# express no se puede, pero ahora el problema es que cuando aprieto el boton me salta un error en el VB diciendo que "debo aceptar los TOS" de mi aplicación, ¿El problema? no se como hacer para que me salga el cuadro y que yo le de permitir asi puedo publicar desde la misma..
Me vuelve loco, sinceramente :S

El error es:
(OAuthException) (#200) User must have accepted TOS