Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Facebook Stream mit fb_stream.module veröffentlichen

Eingetragen von schneseb (160)
am 21.11.2010 - 01:02 Uhr in
  • Module
  • Drupal 6.x

Hallo zusammen,

ich habe mir das fb Projekt installiert und nach einigen Konfigurationshürden auch (ohne Fehler) am Laufen. Jetzt möchte ich gerne folgendes machen und habe da so kleine Verständnisprobleme.

Ich möchte nach dem Speichern von neuem Content (also eines Nodes) die Möglichkeit haben, den Text zusätzlich auf Facebook zu veröffentlichen. Jetzt habe ich da denke ich schon das richtige gefunden: http://drupal.org/node/933988

Ich habe nun folgende Fragen:

  1. Wo genau muss ich diesen Code einfügen?
  2. Ich möchte den Inhalt nicht direkt über meinen Useraccount verteilen, sondern über eine Seite die ich extra eingerichtet habe (für die habe ich natürlich auch die Berechtigung)

Kann mir da jemand behilflich sein?

Vielen Dank und Grüße
Sebastian

‹ (irgendwie) Gelöst: 500 er bei update.php bei Panels update 6x3.5 auf 6x3.9 Webform: Forumulare kopieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

ich habe mir gedacht, dass

Eingetragen von schneseb (160)
am 21.11.2010 - 15:00 Uhr

ich habe mir gedacht, dass ich aus dem Code einfach mal ein Modul mache. Dazu habe ich nun eine .info Datei erstellt

; $Id$
name = FacebookStream
description = Sends postings to facebook
core = 6.x
package = Facebook

und dann das Modul:

<?php
// $Id$
/**
* Implements hook_form_alter().
*
* Adds a checkbox to node edit and comment forms.  This checkbox lets
* facebook users know that content may be published to their Wall,
* and gives them a chance to prevent that.
*/
function facebookstream_form_alter(&$form, $form_state, $form_id) {
 
// Add stream publish option.
 
if (isset($GLOBALS['_fb']) && fb_facebook_user()) {
    if (
$form['#id'] == 'node-form') {
     
// Add checkbox to control feed publish.
     
$form['facebookstream']['stream_publish'] = array(
       
'#type' => 'checkbox',
       
'#title' => 'Share on Facebook',
       
'#default_value' => TRUE,
      );
    }
    elseif (
$form['form_id']['#value'] == 'comment_form') {
     
// Add checkbox to control feed publish.
     
$form['facebookstream']['stream_publish'] = array(
       
'#type' => 'checkbox',
       
'#title' => 'Share on Facebook',
       
'#default_value' => TRUE,
      );
    }
  }
}

/**
* Implements hook_nodeapi().
*
* Publish to facebook Walls when users submit nodes.
*
* @see <a href="http://developers.facebook.com/docs/reference/rest/stream.publish" title="http://developers.facebook.com/docs/reference/rest/stream.publish" rel="nofollow">http://developers.facebook.com/docs/reference/rest/stream.publish</a>
* @see <a href="http://developers.facebook.com/docs/guides/attachments
" title="http://developers.facebook.com/docs/guides/attachments
" rel="nofollow">http://developers.facebook.com/docs/guides/attachments
</a> */
function facebookstream_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  if (
$op == 'insert' || $op == 'update') {
    if (isset(
$node->stream_publish) && $node->stream_publish) {
     
$attachment = array(
       
'name' => $node->title,
       
'href' => url('node/' . $node->nid, array('absolute' => TRUE)),
       
'description' => filter_xss($node->teaser, array()),
      );

     
/*
        if ($picture = $GLOBALS['user']->picture) {
        $url = url($picture, array('absolute' => TRUE));
        $attachment['media'][] = array(
        'type' => 'image',
        'src' => $url,
        'href' => $url,
        );
        }
      */
     
if ($logo_path = theme_get_setting('logo_path')) {
       
$url = url($logo_path, array('absolute' => TRUE));
       
//dpm($logo_path, "logo_path is $logo_path and url is $url");
       
$attachment['media'][] = array(
         
'type' => 'image',
         
'src' => $url,
         
'href' => $url,
        );
      }
     
     
$user_message = t('Check out my latest post on !site...',
                        array(
'!site' => variable_get('site_name', t('my Drupal for Facebook powered site'))));
     
$actions = array();
     
$actions[] = array(
       
'text' => t('Read More'),
       
'href' => url('node/' . $node->nid, array('absolute' => TRUE)),
      );
     
fb_stream_publish_dialog(array('message' => $user_message,
                                    
'attachment' => $attachment,
                                    
'action_links' => $actions,
                               ));
    }
  }

 
// Another way to add like button, as part of a node.
 
if ($op == 'view' && variable_get('facebookstream_nodeapi_add_like', FALSE)) {
   
$url = fb_scrub_urls(url('node/' . $node->nid, array('absolute' => TRUE)));
   
$node->content['dff_like'] = array(
     
'#value' => "<fb:like href={$url}></fb:like>",
     
'#type' => 'markup',
     
'#prefix' => '<div class="dff_like_wrapper">',
     
'#suffix' => '</div>',
    );
  }
}


/**
* Implementation of hook_comment().
*
* Publish to facebook Walls when users submit comments.
*/
function facebookstream_comment(&$a1, $op) {
  if (
$op == 'insert' || $op == 'update') {
    if (
$a1['stream_publish']) {
     
//dpm($a1, "facebookstream_comment, publishing to stream");
     
$node = node_load($a1['nid']);
     
     
// http://wiki.developers.facebook.com/index.php/Attachment_(Streams)
     
$attachment = array(
       
'name' => $a1['subject'],
       
'href' => url('node/' . $a1['nid'], array('absolute' => TRUE, 'fragment' => 'comment-' . $a1['cid'])),
       
'description' => $a1['comment'],
       
//'properties' => array(t('In reply to') => array('text' => $node->title, 'href' => url("node/" . $node->nid, array('absolute' => TRUE)))),
     
);

      if (
$logo_path = theme_get_setting('logo_path')) {
       
$url = url($logo_path, array('absolute' => TRUE));
       
//dpm($logo_path, "logo_path is $logo_path and url is $url");
       
$attachment['media'][] = array(
         
'type' => 'image',
         
'src' => $url,
         
'href' => $url,
        );
      }

     
$user_message = t('Check out my latest comment on !site...',
                        array(
'!site' => variable_get('site_name', t('my Drupal for Facebook powered site'))));
     
$actions = array();
     
$actions[] = array('text' => t('Read More'),
                        
'href' => url('node/' . $a1['nid'], array('absolute' => TRUE)),
      );
     
fb_stream_publish_dialog(array('message' => $user_message,
                                    
'attachment' => $attachment,
                                    
'action_links' => $actions,
                               ));
    }
  }
}
?>

Soweit so gut, ich habe es auf meinen Webspace geladen und unter den Modulen eingeschaltet - auch ohne Probleme. Nur ich stelle gar keine Auswirkungen fest. Ich hätte jetzt erwartet, dass ich bei der Blogeintragerzeugung oder Änderung eine Möglichkeit vorfinde meinen Beitrag auf Facebook zu veröffentlichen. Aber da ist nichts.

Dann hatte ich mir noch gedacht, es könne daran liegen, dass Drupal vielleicht nicht, dass ich einen Account habe. Deshalb habe ich per "Facebook Connect" noch meine Applikation verbunden. Es ändert sich aber auch nichts.

Wahrscheinlich ein Denkfehler - aber ich finde ihn nicht :-)

Danke
Sebastian

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, stehe vor dem gleichen

Eingetragen von jD (59)
am 15.12.2010 - 15:23 Uhr

Hallo,

stehe vor dem gleichen Problem. Hast Du es mittlerweile lösen können?

Viele Grüße
jD

„Nichts geschieht ohne Risiko, aber ohne Risiko geschieht auch nichts.“

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo jD, nein leider noch

Eingetragen von schneseb (160)
am 15.12.2010 - 15:29 Uhr

Hallo jD,

nein leider noch nicht. Habe mich versucht noch auf anderen Wegen schlau zu machen, aber ich konnte noch nichts in Erfahrung bringen. Wäre für mich auch noch interessant.

Gruß
Sebastian

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Workaround?

Eingetragen von maery (27)
am 12.01.2011 - 18:34 Uhr

Hallo!

Schließe mich an. Habe Ähnliches vor und das gleiche Problem.

Ich bin anders vorgegangen. Da bei mir das "fb" Modul überhaupt nicht funktioniert (und teilweise die Seite komplett lahm legt) habe ich es mit diesem hier versucht: Facebook (Live) Stream – http://drupal.org/node/483570. In Zusammenarbeit mit FB Connect, klappt alles sehr gut. Ich kann für den jeweiligen Node-Typ eingeben, dass und was er "streamen" soll.

Ich nutze Drupal 6. Das Projekt, für das ich diese Funktion benötige, ist so gedacht, dass Besucher der Seite, Bilder hochladen können und diese dann auf eine Landkarte lokalisieren sollen (natürlich mit Spamschutz etc.). Umgesetzt wurde das über einen Node-Typ, inklusive CCK und Views Anbindung. Im Anschluss an die Erstellung der Node soll die Verbindung zu Facebook hergestellt, der Besucher soll sich dann jeweils mit seinem Account einloggen und daraufhin seinen Beitrag posten können.

Grundsätzlich klappt das schon recht gut: Also nach dem Speichern erscheint das Connect-Fenster und man kann seinen Inhalt bzw. einen Link auf Facebook posten. Das einzige Problem ist, dass ich gerne eine Darstellung in Facebook hätte, die der einer durch den "Share Button" hervorgerufenen gleicht. Allerdings sieht der Link in Facebook eher aus wie ein Like-Link, also ohne Bild und Möglichkeit den Text zu verändern etc. Da es aber aufs Bild ankommt, wäre es mir schon wichtig, dass es in Facebook erscheint.

Ich habe zwischenzeitlich schon überlegt, ob es irgendwie Sinn macht, einen anderen Weg zu gehen und über eine Regel (Nach Speichern eines Node-Typs) die Facebook Share Aktion aufzurufen. Allerdings weiß ich nicht wie, und ob das überhaupt funktioniert. Was meint Ihr?

Grüße,
Maria

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Maria, dein Workaround

Eingetragen von schneseb (160)
am 12.01.2011 - 21:07 Uhr

Hallo Maria,

dein Workaround klingt für mich sinnvoll bzw. adaptierbar. Eine Frage, handelt es sich bei dir um eine Facebook Seite oder ein Facebook Profil selber (oder ist das egal und in FB Connect einstellbar? Ich kenne das Modul nicht)? Wenn ja würde ich das gerne auch mal versuchen nachzustellen wie bei dir.

Das mit dem Bild muss ja irgendwie gehen, so macht Hootsuite das ja auch. Dann könnten wir irgendwie zusammen weiter probieren, denn an einem Bild hätte ich auch Interesse :-)

Grüße
Sebastian

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es geht ja darum, dass die

Eingetragen von maery (27)
am 12.01.2011 - 22:03 Uhr

Es geht ja darum, dass die Benutzer sich anmelden... Also handelt es sich i.d.R. um Profile.

Wenn ich es also über meine erste skizzierte Variante versuche (Fb-Connect + Facebook (Live) Stream), erhalte ich diese Darstellung...http://cl.ly/0v1f3S1S2c3q2w0d1t3V – Eigentlich perfekt außer eben das Bild, das von der Seite mit muss (btw. wenn ich bei Facebook nicht eingeloggt bin, erscheint im js overlay die Login Box – quasi perfekt!).

Ich schau mir das Modul noch mal ganz genau an, verstehe allerdings nicht so viel von PHP. Vielleicht kannst du, wenn du Zeit hast, mal drin "wühlen". ;)

Grüße,
Maria

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kommando zurück!

Eingetragen von maery (27)
am 12.01.2011 - 23:11 Uhr

Also ich habe jetzt noch mal alles genau überprüft: Die Funktionalität, die ich oben beschrieb, geht nicht vom "Stream" Module aus, sondern direkt vom FB:Connect Modul. Umso besser, denn je weniger Module damit zu tun haben, um so besser.

Ich habe auch schon herausgefiltert, an welcher Stelle ich ansetzen muss, nämlich hier (fbconnect_stream_publish/fbconnect_stream_publish.module):

function fbconnect_stream_publish_render_js($feed) {
  global $base_url;
 
  $site = variable_get('site_name', $base_url);

  switch ($feed['type']) {
    case 'comment':
      $autopublish = 'false';
      $attachment = array(
        'name'        => $feed['title'],
        'href'        => $feed['nodeurl'],
        'caption'     => t("{*actor*} commented at !site", array("!site" => $site)),
        'description' => strip_tags($feed['comment']),
      );
      $action_links = array(
        array(
          'text'  => $site,
          'href'  => $base_url,
        ),
      );
      $message = t('I posted a comment on !site_name.', array('!site_name' => variable_get('site_name', 'Drupal')));
      break;
    case 'node':
      $autopublish = 'false';
      $attachment = array(
        'name'        => $feed['title'],
        'href'        => $feed['nodeurl'],
        'caption'     => t("{*actor*} created some content at !site", array("!site" => $site)),
      );
      $action_links = array(
        array(
          'text'  => $site,
          'href'  => $base_url,
        ),
      );
      $message = t('I posted new content on !site_name.', array('!site_name' => variable_get('site_name', 'Drupal')));
      break;
    case 'register':
      $autopublish = 'true';
      $attachment = array(
        'name'        => t('Welcome to @site', array('@site' => $site)),
        'href'        => $base_url,
        'caption'     => t("{*actor*} has registered at !site", array("!site" => $site)),
      );
      $action_links = array(
        array(
          'text'  => $site,
          'href'  => $base_url,
        ),
      );
      $message = t('I just became a member at !site_name!', array('!site_name' => variable_get('site_name', 'Drupal')));
  }

Und nun werde ich mal etwas spielen... :)

Nachtrag:

Ich habe versucht folgendes unterzubringen:
'media' => array(array('type' => 'image', 'src' => $url_img, 'href' => $lnk_img)));
(siehe http://forum.developers.facebook.net/viewtopic.php?id=45331) – leider ohne Erfolg. Wahrscheinlich (hoffentlich) liegt es nur an einer Kleinigkeit. Ich habe wirklich das Gefühl, dass das hier die Lösung sein könnte.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, mhh also mein

Eingetragen von schneseb (160)
am 12.01.2011 - 23:42 Uhr

Hallo,

mhh also mein "Usecase" ist, dass ich auf meiner eigenen Internetseite bin und einen Artikel veröffentliche. Dann habe ich bei Facebook eine Seite (natürlich habe ich auch ein Profil mit dem ich mich anmelde) auf der der Beitrag zusätzlich (zumindestens mit dem Teaser, Hauptsache überhaupt was...) auf der Facebook Seite veröffentlichen.

Das andere muss ich noch anschaun...

Grüße
Sebastian

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

An deiner Stelle würde ich

Eingetragen von maery (27)
am 13.01.2011 - 00:38 Uhr

An deiner Stelle würde ich anders vorgehen: Via Views einen Feed ausgeben und mit der Facebook Anwendung RSS Graffiti die Beiträge auf der Facebook-Seite veröffentlichen.

Grüße,
Maria

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Maria, ja das habe ich

Eingetragen von schneseb (160)
am 13.01.2011 - 14:39 Uhr

Hallo Maria,

ja das habe ich auch schon mal gemacht. Ich würde aber lieber aktiv die Schnittstelle ansprechen (wie bei Twitter) und das auf die Wall schreiben. Vielleicht entsteht dadurch noch die ein oder andere Idee mehr :-)

Gruß
Sebastian

--- Web | Twitter | XING ---

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • benutzerdefinierte Felder vom Userprofil tauchen ungewollt oberhalb des Bodys jedes Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
  • Update V. 9.3.12 auf V. 9.4 mit Fehler: Modul mySQL fehlt. Bitte Hilfe.
  • Sprachpfad, in Drupal Korrekt einstellen, auch bei den Meta-Tags
  • Update von Drupal 9.3 auf 9.4 oder bei 9.3 bleiben
  • Terminverwaltung
  • Views in Seite einbetten
  • Hilfe! Nach Update auf 7.90 zeigt User reference (Kontrollkästchen/Auswahlknöpfe) nicht mehr vollständig an
  • ("Gelöst,...") Das Deinstallieren eines Content typen, der keinen Content hat, ist nicht möglich.
  • Drupal Website gestalten
  • DrupalCamping 2022 in Wolfsburg, 25. - 28. August
  • Entity Reference - Title Felder werden als Link angezeigt
Weiter

Neue Kommentare

  • Nein, das war es nicht. S. o.
    vor 2 Tagen 9 Stunden
  • Eventuell hier ein Hinweis?
    vor 2 Tagen 10 Stunden
  • Lösung gefunden
    vor 21 Stunden 3 Sekunden
  • Kalender und webform
    vor 4 Tagen 15 Stunden
  • Alle Funktionen sind in views schon enthalten
    vor 4 Tagen 15 Stunden
  • Danke, Werner. Composer läuft
    vor 6 Tagen 1 Stunde
  • Wenn eine neue Drupal
    vor 6 Tagen 2 Stunden
  • Nein. Mittlerweile denke ich,
    vor 6 Tagen 2 Stunden
  • Wurde der Update mit composer
    vor 6 Tagen 3 Stunden
  • Maik Petran schrieb und zwar
    vor 1 Woche 1 Tag

Statistik

Beiträge im Forum: 247845
Registrierte User: 19585

Neue User:

  • Tkakah
  • JeraldFub
  • andycrestodina

» Alle User anzeigen

User nach Punkten sortiert:
wla9212
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 3 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association