Foros del Web » Programando para Internet » PHP »

enviar twits automaticos

Estas en el tema de enviar twits automaticos en el foro de PHP en Foros del Web. hola saludos a todos he estado toda la tarde de hoy tratando de hacer un script para enviar twitts automaticos y creo que voy por ...
  #1 (permalink)  
Antiguo 20/04/2015, 19:01
 
Fecha de Ingreso: abril-2015
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
enviar twits automaticos

hola saludos a todos he estado toda la tarde de hoy tratando de hacer un script para enviar twitts automaticos y creo que voy por buen camino la idea la saque de aqui

http://www.webinfopedia.com/auto-tweet-with-oauth-in-php.html

ya cree mi base se datos logre que todo conectara bien

lo unico es que no recuerdo muy bien como manejar el mysql para guardar el texto alli

aca les dejo los archivos que he creado

este es el
index.php
Código:
<?php

$consumerKey    = 'obvio que no la colocare aca';
$consumerSecret = 'obvio que no la colocare aca';
$oAuthToken     = 'obvio que no la colocare aca';
$oAuthSecret    = 'obvio que no la colocare aca';

require_once('twitteroauth.php');

$tweet = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret);

require_once("db.php");
$sql=mysql_query("select url,title from table_name order by rand()"); 
$showfetch=mysql_fetch_array($sql); ESTA ES LA LINEA DEL ERROR

$tweet->post('statuses/update', array('status' => ''.$showfetch['title'].'
http://www.posadasturisticas.com.ve'.$showfetch['url'].''));
?>
este es el error que me da

Código:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u470755194/public_html/twitter_aplicacion/index.php on line 17
la idea es crear una base de datos (ya la tengo creada conecta bien) y en esa misma base de datos crear la "lista" de twits que se van a enviar

sera que hay alguien me pueda orientar mas o menos como hacerlo mis conocimientos de mysql se me han olvidado algo pero con una ayudita creo que lo lograre

Última edición por conielpana; 20/04/2015 a las 19:03 Razón: me equivoque le linea
  #2 (permalink)  
Antiguo 20/04/2015, 19:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: enviar twits automaticos

Ese mensaje de error suele darse en dos casos, al menos:
1) MySQL esta devolviendo un error, que tu no administras, así que ni te enteras, y en consecuencia no hay datos a leer.
2) No hay error, pero la tabla esta vacía, así que no hay datos para leer.
Tu problema es que tu asumes que todo anduvo bien porque esta bien escrito, y eso no es necesariamente cierto. Puede dar errores por causas diferentes a errores de sintaxis. Y no lo validas, así que no puedes saberlo.

Al menos ponle un or die() a esa sentencia a la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 20/04/2015, 20:13
 
Fecha de Ingreso: abril-2015
Mensajes: 27
Antigüedad: 9 años
Puntos: 1
Respuesta: enviar twits automaticos

tweeter te da esos datos para que lo puedas hacer, te da hasta los codigos qe debes poner en tu pag
  #4 (permalink)  
Antiguo 20/04/2015, 20:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: enviar twits automaticos

Cita:
Iniciado por ariki Ver Mensaje
tweeter te da esos datos para que lo puedas hacer, te da hasta los codigos qe debes poner en tu pag
Eso no implica que los hayas implementado bien...
¿Te has tomado el tiempo de verificar lo que te digo? ¿O prefieres continuar recibiendo ese fallo?
¿Al menos podrías mostrar el código del "db.php"?

Por otro lado, lo que se suele poner en esos scripts de ejemplo de las web es sólo la logica básica, por cuanto los desarrolladores que lo ponen asumen que el que los use tiene un minimo de conocimietnos de programación y sabe que deben hacerse controles de error.
Los controles de error son una parte normal de cualquier programa, y es eso lo que no estás haciendo.
Creo que no es dificil que imagines que es necesario verificar al menos dos cosas:
1) Que las conexiones están activas.
2) Que las consultas devuelvan datos.
Esos dos controles, como mínimo, no se necesitan indicar porque se supone que cualquiera lo sabe. Está en todos loos manuales y tutoriales.

Nunca asumas que un código aportado por el creador de algo está completo. Es es un error. Rara vez es un código tan perfecto.

En tu caso puntual, lo que te dije es algo tan simple como esto:
Código PHP:
<?php

$consumerKey    
'obvio que no la colocare aca';
$consumerSecret 'obvio que no la colocare aca';
$oAuthToken     'obvio que no la colocare aca';
$oAuthSecret    'obvio que no la colocare aca';

require_once(
'twitteroauth.php');

$tweet = new TwitterOAuth($consumerKey$consumerSecret$oAuthToken$oAuthSecret);

require_once(
"db.php");
$sql=mysql_query("select url,title from table_name order by rand()") or die("Error al consultar la base: ".mysql_error()); 
if(
mysql_num_rows($sql) > 0)
{
$showfetch=mysql_fetch_array($sql); 
$tweet->post('statuses/update', array('status' => ''.$showfetch['title'].'
http://www.posadasturisticas.com.ve'
.$showfetch['url'].''));
}
else {echo 
"No se obtuvieron datos de la base.";}
?>
Nota Bene: El código que estás creando, a pesar de intentar hacer tweets masivos, lo único que hace es un único tweet, ya que si la consulta devuelve registros, tu sólo estás procesando el primero...
¿Te diste cuenta?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 21/04/2015 a las 05:53

Etiquetas: mysql, soporte, twitter
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:15.