Anzahl der likes von Facebook auslesen

aufjedenfall passiert da nicht viel

Mit der Aussage kann man null-komma-nix anfangen. Ich sehe z.B. schon mal ein Problem, dass dazu führen könnte, das überhaupt kein PHP-Code ausgeführt wird. Du verwendst <? statt <?php. Wenn die php.ini-Einstellung short_open_tags auf Off steht, wird der PHP-Code nicht ausgeführt, statt dessen wird das als HTML an den Browser gesendet, der damit wiederum nix anfangen kann.

Außerdem könntest du auch mal einen Blick ins Manual werfen, dort gibt es nämlich Hinweise auf Möglichkeiten, wie man eine Fehler-Behandlung einbauen kann: http://php.net/manual/de/function.curl-error.php

Ich hab das jetzt mal für dich gemacht, weil ich gesehen habe, das curl_exec() in $pageinfo ein "bool(false)" ablegt - ganz simple mit var_dump() ausgegeben. Dazu meint das Manual:

PHP:
$pageinfo = curl_exec( $ch );
if( $pageinfo === false )
{
  die ( curl_error( $ch ) );
}

Resultat:

SSL certificate problem: unable to get local issuer certificate

Diese Meldung in Google und ein bisschen Recherche:

PHP:
    ....
    // CURL sagen, wir wollen den Inhalt der Seite haben
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // SSL-Verifizierung unterbinden
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

    // Einen User-Agent vorgaukeln
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0');

    .....

Ergebnis:

Code:
string(52) "{ "id": "http://www.news.at", "shares": 1451 }"

Das sieht nach einem Json-Enkodiertem Objekt aus. Also muss es noch durch die Funktion json_decode() geschickt werden:

PHP:
    // CURL beenden
    curl_close( $ch );
  }
  $o = json_decode( $pageinfo );
  return $o;
}
//... $pageinfo könnte jetzt den Inhalt der Seite beinhalten ....

Wenn man das jetzt durch var_dump() jagt:

Code:
object(stdClass)#1 (2) { ["id"]=> string(18) "http://www.news.at" ["shares"]=> int(1451) }

Ich weiß nicht, ob das jetzt richtig is, aber es sieht für mich danach aus, das

PHP:
$likes = getFBLikes($page);
echo "likes: " . $likes->shares;

dann das Ergebnis darstellt.

Hier noch mal mein kompletter Code:

PHP:
<?php
$page = "http://www.news.at";

function getFBLikes($page)
{

  $pageinfo = "";

  // CURL initialisieren
  $ch = curl_init();
  if( $ch )
  {
    // HTTP-URL setzen
    curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/$page");
    // CURL sagen, wir wollen den Inhalt der Seite haben
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    // SSL-Verifizierung unterbinden
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    
    // Einen User-Agent vorgaukeln
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0');
    // Request ausführen
    $pageinfo = curl_exec($ch);
    
    if ( $pageinfo === false )
    {
      die ( curl_error( $ch ) );
    }
    // CURL beenden
    curl_close( $ch );

    return json_decode( $pageinfo );
  }
  die("Fehler beim Initialisieren von CURL");  
}
//... $pageinfo könnte jetzt den Inhalt der Seite beinhalten ....

$likes = getFBLikes($page);
echo "likes: " . $likes->shares;
 
Ich muss gestehen, ich hab von dem Facebook-Kram keinen Plan, da ich weder einen Account dort habe noch mich dazu genötigt fühle, mir einen zu erstellen.

Daher gebe ich die Frage weiter...
 

Neue Beiträge

Zurück