Foros del Web » Soporte técnico » Ayuda General »

Convertir HTML a feed RSS + Facebook

Estas en el tema de Convertir HTML a feed RSS + Facebook en el foro de Ayuda General en Foros del Web. Buenos días, espero haber creado el post en la sección correspondiente sino es así lo siento >.< Estoy creando un proyecto web para un trabajo ...
  #1 (permalink)  
Antiguo 14/05/2012, 04:14
 
Fecha de Ingreso: mayo-2012
Ubicación: Barcelona
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Convertir HTML a feed RSS + Facebook

Buenos días, espero haber creado el post en la sección correspondiente sino es así lo siento >.<

Estoy creando un proyecto web para un trabajo de la universidad y no consigo encontrar dónde está el error leyendo vuestras guías de como crear feed RSS con PHP, ojalá podáis ayudarme.

El problema es que desde mi página principal.php muestro todas las notícias que tengo guardadas en mi base de datos, concretamente este trozo:

principal.php
Código PHP:
<div id="comentari-admin">
                <h2><strong>Novetats</strong></h2>
                <ul>
            <li><a type="application/rss+xml" href="http://campingedelweiss.webege.com/novetats-web.php"><img src="icono_rss.gif">RSS</a></li>
                 <?php
            
include("conectarbbdd.php");
            
$consulta "SELECT data, titol, descripcio FROM novetats_web ORDER BY data DESC";
            
$resultado mysql_query($consulta);

            
// Recórrer les dades fila a fila
            
while ($fila mysql_fetch_array($resultado))
            {
                echo 
'<li><strong>'.$fila["data"].':  '.$fila["titol"].'</strong>'.'<p>'.$fila["descripcio"].'</p></li>';                    
            }
        
?>
              </ul>
         </div>
Las notícias las muestra bien en el div, después he creado el archivo novetats-web.php que sería mi feed RSS:
Código PHP:
<?php

    
include("conectarbbdd.php");
    
$consulta "SELECT * FROM novetats_web ORDER BY data DESC limit 10";
    
$resultado mysql_query($consulta);


    echo 
"<?xml version='1.0' encoding='ISO-8859-1'?>";
    echo 
"\n<rss version='2.0' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:itunes='http://www.itunes.com/dtds/podcast-1.0.dtd'>";
    echo 
"<channel>\n";
    echo 
"<title>Camping Edelweiss</title>";


    
// Recórrer les dades fila a fila
    
while ($fila mysql_fetch_array($resultado))
    {
       echo 
"<item>\n";
       echo 
"<title>".$fila[2]."</title>\n";
       echo 
"<pubDate>".$fila[1]."</pubDate>\n";
       echo 
"<description>".$fila[3]."</description>\n";
       echo 
"<link>campingedelweiss.webege.com/novetats-web.php</link>\n";
       echo 
"</item>\n";

    }
    
//cierro las etiquetas del XML
    
echo "</channel>";
    echo 
"</rss>";
?>
Desde el Facebook, he dado permiso a la aplicación de RSS Graffiti para poder sincronizar el muro de Facebook con las notícias del RSS pero no me añade ninguna al muro. No sé si es fallo mío con estos dos archivos que tienen algún error que no veo o la aplicación de Facebook.

Si así no es la manera correcta, ¿Cómo puedo sincronizar el muro con las noticias que añado desde el sistema de notícias?

Muchas gracias por la ayuda.

Última edición por Minaru; 14/05/2012 a las 08:58
  #2 (permalink)  
Antiguo 14/05/2012, 15:05
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Convertir HTML a feed RSS + Facebook

Creo que te falta la cabeza del tipo de documento que es:

Código PHP:
Ver original
  1. header('Content-type: text/xml');

De todos modos te paso el código de un RSS que creé para un proyecto:

Código PHP:
Ver original
  1. <?
  2.  
  3.     include_once('./eetc/config.php');
  4.     include_once('./funciones.php');
  5.    
  6.     $consulta = consulta_bd("SELECT cod, nombre, DATE_FORMAT(lugares.fecha,'%a, %d %b %Y %T') AS fecha, comentario AS descripcion FROM lugares INNER JOIN comentarios ON cod_lugar = cod WHERE autor = 1 ORDER BY cod DESC LIMIT 0, 10");
  7.    
  8.     // Header para escribir XML y no lo tome como php.
  9.     header('Content-type: text/xml');
  10.    
  11.     //Debido a que php también acepta una apertura de código corto, debemos pasar esto por echo.
  12.     echo "<?xml version='1.0' encoding='Latin1'?>";
  13.  
  14. ?>
  15.  
  16.     <rss version="2.0">
  17.  
  18.         <channel>
  19.        
  20.             <title>Gran Canaria Accesible</title>
  21.             <link>http://www.<?php echo cfg_dominio; ?></link>
  22.             <description>Somos una guía de establecimientos accesibles. Te decimos a donde ir, por ejemplo, a comer si eres discapacitado y si tienes o no problema para acceder.</description>
  23.            
  24.             <?php while ($a = mysql_fetch_assoc($consulta)) { ?>
  25.            
  26.                 <item>
  27.                
  28.                     <title><?php echo "<![CDATA[{$a['nombre']}]]>"; ?></title>
  29.                     <link>http://www.<?php echo cfg_dominio; ?>/lugares.php?cod=<?php echo $a['cod']; ?></link>
  30.                     <?php if (!file_exists("." . $img = "/upload/lugares/{$a['cod']}/thumb.m.0.jpg")) { $img = "/theme/imagen/thumb.m.x.jpg"; } ?>
  31.                     <enclosure url="http://www.<?php echo cfg_dominio; ?><?php echo $img; ?>" type="image/jpeg" />
  32.                     <description><?php echo "<![CDATA[{$a['descripcion']}]]>"; ?></description>
  33.                     <pubDate><?php echo $a['fecha']; ?> UTC</pubDate>
  34.                    
  35.                
  36.                 </item>
  37.            
  38.             <?php } ?>
  39.        
  40.         </channel>
  41.  
  42.     </rss>
  #3 (permalink)  
Antiguo 14/05/2012, 16:10
 
Fecha de Ingreso: mayo-2012
Ubicación: Barcelona
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Convertir HTML a feed RSS + Facebook

Gracias por contestar! He añadido la línea que me dices y he modificado el .php pero no consigo validarlo en W3C

Código PHP:
<?php
echo "<?xml version='1.0' encoding='UTF-8'?>";
    echo 
"\n<rss version='2.0'>";
    echo 
"<channel>\n";

    echo 
"<title>Camping Edelweiss</title>\n";
    echo 
"<link>".$domini."</link>\n";
    echo 
"<description>Noticies RSS del Camping Edelweiss</description>\n";
    include(
"conectarbbdd.php");
    
$consulta "SELECT * FROM novetats_web ORDER BY data DESC limit 10";
    
$resultado mysql_query($consulta);

    while (
$fila mysql_fetch_array($resultado))
    {
       echo 
"<item>\n";
       echo 
"<title>".$fila[2]."</title>\n";
       echo 
"<link>".$link."</link>\n";       
       echo 
"<guid>".$link."-".$fila[0].".php</guid>\n";       
       echo 
'<description>'.$fila[3].'</description>';
       echo 
"</item>\n";
    }
    
//cierro las etiquetas del XML
    
echo "</channel>";
    echo 
"</rss>";
?>
Me salen tres errores que no consigo solucionar:
En la etiqueta <item> "Unexpected Text [help]".
En </channel></rss> Missing atom:link with rel="self" [help]
Y el último "Your feed appears to be encoded as "UTF-8", but your server is reporting "US-ASCII" ".
Desde el archivo php tengo puesto encoding='UTF-8', tengo la web subida en el servidor 000webhost y en control panel -> phpmyadmin -> operation -> collation he puesto utf8_spanish_ci
¿Qué más tengo que modificar para que no marque ese aviso?

La información que muestra es esta:

Código PHP:
<item>
<
title>Titulo para RSS</title>
<
link>url principal</link>
<
guid>url especifica</guid>
<
description>contenido probando
</description></item
¿Qué puedo hacer para solucionarlo?

Gracias de nuevo!
  #4 (permalink)  
Antiguo 15/05/2012, 02:23
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Convertir HTML a feed RSS + Facebook

Bueno, mi RSS.php pasado por el validador de W3C tiene 10 errores, y yo lo usé en facebook del mismo modo que tu lo deseas hacer.

Intenta probarlo directamente en facebook a ver si te deja, porque a aquí funciona perfectamente.

De todos modos tienes que configurar bien RSS Graffiti y el mismo te muestra (si no me equivoco) un resumen de lo que te va a mostrar.
  #5 (permalink)  
Antiguo 15/05/2012, 14:05
 
Fecha de Ingreso: mayo-2012
Ubicación: Barcelona
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Convertir HTML a feed RSS + Facebook

Gracias por la ayuda, ahora RSS Graffiti me chequea los RSS sin errores pero al mandarse para facebook me dice el siguiente error: Facebook has indicated a problem while trying to publish to a target. Failed to post story 'Prueba para Facebook'. Facebook error code: 100: (#100) Sorry, this post contains a blocked URL

He mandado un mensaje a RSS Graffiti 2.0 para ver si pueden solucionarlo. ¿A tí te pasó?

Muchas gracias por la ayuda de nuevo!
  #6 (permalink)  
Antiguo 15/05/2012, 14:37
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Convertir HTML a feed RSS + Facebook

https://getsatisfaction.com/rssgraff...00_blocked_url

En este enlace básicamente dicen (al igual que el error de facebook), esa URL está bloqueada por spam.

Solución, pues ya ahí se me escapa.

Etiquetas: facebook, php, rss
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 18:46.