[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
RSS bei Facebook via RSS-Graffiti - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Mightymagic
Beiträge: 63
Registriert: 11. Feb 2010, 15:29
Kontaktdaten: Website

RSS bei Facebook via RSS-Graffiti

18. Jul 2011, 18:27

Hallo,

ich verwende das RSS-Modul von franz007.at und möchte es mit einer FB-Gruppe via RSS-Graffiti verbinden. Das klappt auch soweit ganz gut, bis auf die Tatsache, dass ich bei der Aktualisierung (dem Posten auf FB) die Fehlermeldung "Missing publication date in {number} items in your feed." bekomme. Lt. Wikieintrag der App fehlt dem ganzen das Publikationsdatum durch den Eintrag "pubDate". Nun hab ich keinen Schimmer, wie ich das in das Modul reibekommen soll. Hat jemd vielleicht einen Tip für mich, wie und an welcher Stelle ich das reinnehmen kann/muss? Ich gehe mal davon aus, dass es in die Ausgabe muss. Anbei mal der Ausgabe-Code...

Code: Alles auswählen

<?php
	// Version 1.5.1
	//---Module by----------------------
	//-- franz007.at
	//-- franz007
	//-- www.franz007.at
	//----------------------------------	
	$rss_title = "REX_VALUE[6]"; // titel des RSS-feeds
	$rss_link = "REX_VALUE[7]"; // link 
	$rss_description = "REX_VALUE[8]"; // beschreibung des feeds
	$rss_language = "REX_VALUE[9]"; //language code
	$domain = "REX_VALUE[10]"; # inkl http:// und abschließndem /    wird in den Links vor rex_getUrl($articleId) gesetzt
	
	
	/*$rss_title = "franz007.at Newsfeed"; // titel des RSS-feeds
	$rss_link = "http://www.franz007.at/"; // link 
	$rss_description = "franz007.at"; // beschreibung des feeds
	$rss_language = "de-at"; //language code
	
	$domain = "http://www.franz007.at/"; # inkl http:// und abschließndem /    wird in den Links vor rex_getUrl($articleId) gesetzt*/
	$n = "\n";
	
if (!$REX['REDAXO']){ #nicht im backend
	function un_htmlentities__m148($string){
	   $trans_tbl = get_html_translation_table (HTML_ENTITIES);
	   $trans_tbl = array_flip($trans_tbl);
	   return strtr($string, $trans_tbl);
	}
	function sortArticlesByUpdateDate__m148( $artA, $artB) {
		$createA = $artA->_updatedate;
		$createB = $artB->_updatedate;

		if ( $createA == $createB) {
			return 0;
		}

		return $createA > $createB ? -1 : 1;
	}
	function sortArticlesByUpdateDate_rev__m148( $artA, $artB) {
		$createA = $artA->_updatedate;
		$createB = $artB->_updatedate;

		if ( $createA == $createB) {
			return 0;
		}

		return $createA > $createB ? +1 : 1;
	}
	function sortArticlesByPrio__m148( $artA, $artB) {
		$createA = $artA->_prior;
		$createB = $artB->_prior;

		if ( $createA == $createB) {
			return 0;
		}
		return $createA > $createB ? +1 : 1;
	}
	function sortArticlesByPrio_rev__m148( $artA, $artB) {
		$createA = $artA->_prior;
		$createB = $artB->_prior;

		if ( $createA == $createB) {
			return 0;
		}
		//return $createA > $createB ? +1 : 1;
		return $createA > $createB ? -1 : 1;
	}
	function only_numbers__m148($string){
		if(strval(intval($string)) == $string)
			return true;
		else
			echo false;
	}
	
	
	header("Content-type: application/xml");
	echo '<?xml version="1.0" encoding="ISO-8859-1" ?>';
	echo '<rss version="0.91">'.$n;
	echo '<channel>'.$n;
	echo '<title>'.$rss_title.'</title>'.$n;
	echo '<link>'.$rss_link.'</link>'.$n;
	echo '<description>'.$rss_description.'</description>'.$n;
	echo '<language>'.$rss_language.'</language>'.$n;
	

	$itemsPerSide = "REX_VALUE[2]";
	$wordsPerArticle = "REX_VALUE[3]";
	$config_categories = "REX_VALUE[1]";
	
	
	#$start = !empty($_GET['start']) ? (int) $_GET['start'] : 0; // Startitem
	$start = 0;
	$offset = $itemsPerSide; // 10 Items pro Seite
	
	if($config_categories !== ""){
		#$cats = array($config_categories);
		if(strstr($config_categories, ";") == false){# kein ; gefunden
			$cats = array($config_categories);
		}
		elseif(strstr($config_categories, ";") !== false){ # ; gefunden
			$cats = explode(";", $config_categories);
			
			# überprüfen ob alle werte des arrays zahlen sind
			foreach($cats as $temp){
				if(!only_numbers__m148($temp)){
					$cats = array("REX_CATEGORY_ID"); // aktuelle Kategorien "indizieren"
					break;
				}
			}
		}
		elseif(!only_numbers__m148($config_categories)){
			$cats = array("REX_CATEGORY_ID"); // aktuelle Kategorien "indizieren"
		}
	}
	else{
		$cats = array("REX_CATEGORY_ID"); // aktuelle Kategorien "indizieren"
	}

	$articles = array();

	foreach ( $cats as $catId) {
	  $cat = OOCategory::getCategoryById( $catId);
	 
	  // CatIds die nicht funktionieren aussortieren
	  if( $cat === null) {
	     continue;
	  }

	  $cat_articles = $cat->getArticles( true);

	  foreach ( $cat_articles as $ooarticle) {
	     // keine Startartikel anzeigen
	    if ( $ooarticle->isStartPage()) {
	       continue;
	     }

	     // Damit keine Endlosschleife passiert, den Artikel der die Pagination setzt berspringen
	     if ( $ooarticle->getId() == REX_ARTICLE_ID) {
	        continue;
	     }
	     $articles[] = $ooarticle;
	  }
	}
	
	$articles_length = count( $articles);
	
	
	
	// Sortieren
	if ( $articles_length > 0) {
		if("REX_VALUE[4]" == "1"){// Sortieren nach Erstellungsdatum
			usort( $articles, "sortArticlesByUpdateDate__m148");
		}
		if("REX_VALUE[4]" == "2"){// Sortieren nach Erstellungsdatum
			usort( $articles, "sortArticlesByUpdateDate_rev__m148");
		}
		if("REX_VALUE[4]" == "3"){// Sortieren nach Priorität
			usort( $articles, "sortArticlesByPrio__m148");
		}
		if("REX_VALUE[4]" == "4"){// Sortieren nach Priorität (umgekehrt)
			usort( $articles, "sortArticlesByPrio_rev__m148");
		}
	}

	$article_list = array_slice( $articles, $start, $offset);

	foreach ( $article_list as $ooarticle) {
	#foreach ( $articles as $ooarticle) {
		
		if ($ooarticle->isOnline(true)) {
			$articleId = $ooarticle->getId();
			$articleClang = $ooarticle->getCLang();

			#$article = new article();
			$article = new rex_article();
			$article->setArticleId( $articleId);
			$article->setCLang($articleClang);
			$articleContent = $article->getArticle();
			
			if('REX_VALUE[5]' == "1"){//überschriften entfernen
				//überschriften entfernen
				#$articleContent = preg_replace("/<h[1-6]>.*<\/h[1-6]>/", "", $articleContent);
				$articleContent = preg_replace("/<h[1-6]>(.+?)<\/h[1-6]>/", " ", $articleContent);
				#preg_match_all('#<h[1-6]>(.*)</h[1-6]>#', $articleContent, $found);
			}
			#print_r($found);
			
			//alle tags entfernen
			$articleContent = strip_tags($articleContent);
			$articleContent = un_htmlentities__m148($articleContent);
			
			$output = "";
			$words = explode(" ",$articleContent);
			$wordsCount = count($words);
		
			if ($wordsCount < $wordsPerArticle) {
				$wEnd = $wordsCount;
			}
			else{
				$wEnd = $wordsPerArticle;
				$cutted = true;
			}
					
			for ($w=0;$w<$wEnd;$w++) {
				$output .= $words[$w]." ";
			}
			
			// Leerzeichen entfernen am Anfang und Ende des Strings	
			$output = trim($output);
			
			$item_description = $output;
			
			// " ..." anhängen wenn der artikel gekrzt wird
			if($cutted = true){
				$item_description .= " ...";
			}
			
			
			$item_title = $ooarticle->getName();
			$item_link = $domain.rex_getUrl($articleId);
			
			
			$item_title = "<![CDATA[".$item_title." ]]>";
			
			$item_description = strip_tags($item_description);
			$item_description = un_htmlentities__m148($item_description);
			$item_description = "<![CDATA[".$item_description."]]> ";
			
			
			
			#eintrag ausgeben
			echo '<item>'.$n;
			echo '<title>';
			echo $item_title;
			echo '</title>'.$n;
			echo '<description>'.$item_description.'</description>'.$n;
			echo '<link>';
			echo $item_link;
			echo '</link>'.$n;
			echo '</item>'.$n;
		}
	}
	echo '</channel>'.$n;
	echo '</rss>'.$n;
}
else{ //im backend
	echo "RSS-feed";
	if(isset($m148_rrs_feed_module_already_set) && $m148_rrs_feed_module_already_set == true){
		echo '<h1>Das Modul darf nur einmal pro Artikel eingesetzt werden und muss das einzige Modul im Artikel sein!</h1>'.$n;
	}
	$m148_rrs_feed_module_already_set = true;
}	
?>
Gruß Mightymagic

REDAXO: 4.3.1
PHP: 5.2.14
MySQL: 5.0.91

netmanix

Schau mal hier:

18. Jul 2011, 21:48

Versuchs mal mit der Version von KLXM.
Das basiert auf die Lösung von franz07.at. Bzw. dort findest Du sicher die notwendige Modifikation.
Ich nutze es auch mit RSS-Graffiti.
Schau mal:
http://www.klxm.de/518-0-do-rss.html

Mightymagic
Beiträge: 63
Registriert: 11. Feb 2010, 15:29
Kontaktdaten: Website

Re: RSS bei Facebook via RSS-Graffiti

19. Jul 2011, 00:18

Danke. Er schmeisst jetzt zwar keine Fehlermeldungen mehr aus, aber das Posting sehe ich auch nach Refresh noch nicht....komisch...

EDIT: Also auch nach ein paar Stunden zeigt er in der Gruppe kein Posting an, obwohl er behauptet es gepostet zu haben. Seltsam.
Gruß Mightymagic

REDAXO: 4.3.1
PHP: 5.2.14
MySQL: 5.0.91

Thomas.Skerbis
Beiträge: 1371
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

Re: RSS bei Facebook via RSS-Graffiti

19. Jul 2011, 10:52

Wer gibt keine Postings aus? RSS-Graffiti?
RSS-Graffiti ist ziemlich buggy habe auch so meine Problemchen damit.
In einem Account funktioniert es in dem anderen nicht. Warum ist mir schleierhaft. Bei allen Accounts (facebook-Seiten von Kunden) setze ich do rss! ein. Na ja, RSS-Graffiti ist ja auch noch Beta.

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

Re: RSS bei Facebook via RSS-Graffiti

19. Jul 2011, 12:16

@skerbis
hi do-rss?
hmmm hab ich da irgendwas verpasst...?
wie bekommst du denn das in FB rein?
erklär mir bitte kurz ich machen dann ein video dazu ;)

--
http://www.neosmart.de/social-media/facebook-wall
ist auch interressant, aber um FB aud deiner webseite darzustellen.
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Mightymagic
Beiträge: 63
Registriert: 11. Feb 2010, 15:29
Kontaktdaten: Website

Re: RSS bei Facebook via RSS-Graffiti

19. Jul 2011, 14:51

DAS ist eine gute Frage....gibts denn noch andere Alternativen, wie ich den RSS in meine FB-GRUPPE reinbekomme?
Gruß Mightymagic

REDAXO: 4.3.1
PHP: 5.2.14
MySQL: 5.0.91

Thomas.Skerbis
Beiträge: 1371
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

Re: RSS bei Facebook via RSS-Graffiti

19. Jul 2011, 15:38

@Richy: do rss! ist nur ein RSS-Generator für Redaxo auf Basis der Lösung von franz07.at, modifiziert um UTF-8-Unterstützung und Unterstützung von Timer-Einstellungen.
Da muss man kein Video für erstellen. Das RSS kann man dann mit diversen Anwendungen in Facebook veröffentlichen.

@Mightymagic: Es gibt mehrere Apps bei Facebook die das erledigen können. Einfach mal bei den Anwendungen nach "RSS" suchen.
Es gibt aber auch Dienste die das für die im Social-Web verbreiten.
z.B. SocialOomph oder LinksAlpha.com

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

Re: RSS bei Facebook via RSS-Graffiti

19. Jul 2011, 15:54

@skerbis :) ok arbeit gespart, hast recht video dafür lohn nicht wirklich.
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Mightymagic
Beiträge: 63
Registriert: 11. Feb 2010, 15:29
Kontaktdaten: Website

Re: RSS bei Facebook via RSS-Graffiti

19. Jul 2011, 15:57

So, Problem gelöst: Und es war mal wieder so blöde einfach....

FB läßt es nicht zu dass die Gruppe an sich postet. Man muss also in RSS-Grafitti unter "More" -> "Publish on behalf of..." einen Admin bzw. eine echte Person aussuchen und "posten" lassen.
Gruß Mightymagic

REDAXO: 4.3.1
PHP: 5.2.14
MySQL: 5.0.91

Thomas.Skerbis
Beiträge: 1371
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

Re: RSS bei Facebook via RSS-Graffiti

19. Jul 2011, 16:27

Na ja, wer braucht schon Facebook ;-)

pageUp_ffm
Beiträge: 9
Registriert: 16. Feb 2007, 16:38
Wohnort: Frankfurt am Main

Re: RSS bei Facebook via RSS-Graffiti

30. Jul 2011, 11:33

Moin,

ich muss ja ehrlich sagen, daß mich das Thema "Rss" aus Redaxo nach Facebook allmählich ein bisschen nervt.
Einfach, weil es nicht klappt...

Mal abgesehen davon, das "Rss Graffitti" auf facebook noch ne Beta ist, bietet diese Anwendung doch die Funktionen, die man benötigt. (Post in Gruppe statt eigenes Profil z.b.)

Leider erzeugt das "Do-Rss" bei mir meistens nur einen leeren Feed. Ich sage "meistens", weil es mir gelungen ist, zumindest einmal einen neuen Artikel von meiner Redaxo-Page nach Facebook entsprechend zu posten. Warum diesen einen Artikel und warum nur dieses eine Mal (im übrigen nach Stunden erst), bleibt mit nach wie vor schleierhaft.

Darüber hinaus fände ich es toll, wenn es einen Rss-Generator gäbe, der nur bestimmte Inhalte (referenziert aus der sql-Datenbank) exportieren würde.

Dafür, das Rss nun nicht eine exotische Anwendung ist, wundert es mich, das es dafür nur so wenige Tools hier im Forum gibt. Das ist jetzt kein Vorwurf! Wenn ich etwas mehr Grips und Ahnung hätte, würde ich mich ja an die Programmierung machen...

Hat nicht jemand eine glohreiche Idee, wie man diese o.g. Kombination dann doch zum Laufen bringt ?
Kann doch nicht sein ....

Danke für jeden Tipp.
Stephan
pageUp - Stephan Eberhardt

Thomas.Skerbis
Beiträge: 1371
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

Re: RSS bei Facebook via RSS-Graffiti

1. Aug 2011, 12:24

Es liegt an RSS-Graffiti. Die Lösung ist einfach fehlerhaft.
Meine Empfehlung: LinksAlpha.com

pageUp_ffm
Beiträge: 9
Registriert: 16. Feb 2007, 16:38
Wohnort: Frankfurt am Main

Re: RSS bei Facebook via RSS-Graffiti

1. Aug 2011, 15:04

Skerbis hat geschrieben:Es liegt an RSS-Graffiti. Die Lösung ist einfach fehlerhaft.
Meine Empfehlung: LinksAlpha.com

Nö... es liegt eindeutig an Redaxo bzw. den Rss-Tools.
Ich erhalte immer nur einen leeren Feed.
Oder ich bin zu blöd das einzurichten... kann ja auch sein.
pageUp - Stephan Eberhardt

Thomas.Skerbis
Beiträge: 1371
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

Re: RSS bei Facebook via RSS-Graffiti

2. Aug 2011, 09:56

Wo liegt denn das Problem bei do rss! ?
do rss! listet alle online geschalteten Artikel der festgelegten Kategorie auf.
Beispiel: http://www.klxm.de/195-0-rss.html
do rss! muss in einem leeren Template mit dem Inhalt

Code: Alles auswählen

<?php print $this->getArticle(1); ?>
evtl. kannst Du noch ein ini_set("allow_url_fopen", "1"); an den Anfang stellen.

Wenn der Feed dennoch leer ist liegt es daran, dass do rss! keine Inhalte gefunden hat?
Die Feeds werden aus den Descriptions der Meta-Tags oder aus den eigentlichen Artikel-Inhalten generiert.

Alternativ, versuche es mal mit: http://www.redaxo.org/de/download/modul ... &cat_id=-1

Das ändert aber leider nichts daran, dass RSS-Graffiti nicht zuverlässig arbeitet.

Thomas.Skerbis
Beiträge: 1371
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

Re: RSS bei Facebook via RSS-Graffiti

3. Aug 2011, 16:52

Nochmal RSS-Graffiti.
Bei einem Facebook-Account eines Kunden hat RSS-Graffiti ca. 1 Monat keine Updates durchgeführt.
Heute hat es 25 "alte" News gepostet. Folge: Alte Nachrichten stehen in der Site nun vor neuen.
RSS-Graffiti habe ich jetzt gelöscht.

Zurück zu „Allgemeines [R4]“