Einzelnen Beitrag anzeigen
  #1  
Alt 02.10.2013, 16:19:51
ProCoder2025 ProCoder2025 ist offline
Anfänger
 
Registriert seit: Oct 2013
Alter: 37
Beiträge: 2
Facebook Api Post auf Fanseite nicht immer möglich

Hallo

ich habe folgendes Problem.
Ich möchte über ein APP von einer Website auf meine Facebook fanseite posten.
Dies funktioniert aber nur bedingt.

Zum testen habe ich eine Klasse und eine index.php angelegt, darüber läuft alles wunderbar.
Die Klasse und die dazugehörende SDK Bibliothek habe ich ohne Veränderung in das Hauptprojekt eingepflegt und der einzige Unterschied besteht nur beim erzeugen des Objektes.

Mir ist aber folgendes aufgefallen. Wenn ich im Hauptprojekt die Daten posten möchte, klappt es NUR wenn ich vorher mind. 1x über die Testdatei (die eigentlich keine Bewandtnis hat) etwas gepostet habe. Der Code für das Senden ist jedoch komplett identisch.

Ich habe nicht wirklich rausgefunden an was das liegen kann.
Ich habe die App-Einstellungen kontrolliert, die App mehrmals aus dem Account gelöscht und der Verdacht über evtl. falsch gespeicherte Acces Token hat sich auch nicht bestätigt.
Ich weiß kein Rat mehr.

Kann jemand mal schauen ob vllt. im Code irgendetwas falsch ist.
Ich wäre euch sehr dankbar.

Index.php von Testseite

PHP-Code:

    
require 'class.fbPost.php';
    
$message "Das ist ein Test";
    
$pictureUrl "http://www.example.com/slider/0000019.jpg";
    
$link "www.example.com";
    
$name "Example";
    
$caption "Example";
    
$description "Test";

    
$facebook = new facebookPost();
    
$facebook->postfacebook($message$pictureUrl$link$name$caption$description); 
Hier ein Auszug der Objekterzeugung von der Hauptversion

PHP-Code:
    $message $fb_text;
    
$pictureUrl "";
    
$link $fb_link;
    
$name $fb_name;
    
$caption $fb_caption;
    
$description $fb_desc;
    
$facebookSend = new facebookPost();
    
$facebookSend->postFacebook($message$pictureUrl$link$name$caption$description); 
Die Klasse die bei beiden Versionen die gleiche ist

PHP-Code:

<?php
    
require 'fbsdk/src/facebook.php';
    class 
facebookApi{
        protected 
$seitenId;
        protected 
$appId;
        protected 
$secretId;

        public function 
__construct(){
            
$this->seitenId "XXXXXX";
            
$this->appId "XXXXXX";
            
$this->secretId "XXXXXXXXXX";
        }

        public function 
fbInstanzieren(){
            
$facebook = new Facebook(array(
            
'appId'  => $this->appId// Anwendungs-ID
            
'secret' => $this->secretId// Anwendungs-Geheimcode
            
'cookie' => true// Zugriff auf die Session durch Cookies erlauben.
            
));
            return 
$facebook;
        }
    }

    class 
facebookPost extends facebookApi{

        public function 
__construct(){
            
parent::__construct();
        }

        public function 
postFacebook($message$pictureUrl$link$name$caption$description){
            
$facebook parent::fbInstanzieren();  // greift auf Elternmethode zu
            
$seitenId $this->seitenId;
            
$appId $this->appId;
            
$secretId $this->secretId;
            
$token "";
            
$user $facebook->getUser(); // speichert in Variable evtl. bereits eingeloggten User
            
if ($user){  // Ist User bereits authentifiziert?
                
try {

                    
$page $facebook->api('me/accounts');
                    
$result count($page['data']); // zählt array Index Anzahl(Anzahl Fanseiten im Account)
                    
for($i 0$i $result$i++){
                        
//stimmen IDs von Fanseite überein?
                        
if($page['data'][$i]['id'] == $seitenId){
                            
$pageDaten[] = $page['data'][$i]; // Infos von gewünschter Fanpage werden gespeichert
                            
$token $page['data'][$i]['access_token']; // Speichern des token
                        
}
                    }
                    
//print_r($pageDaten);
                    
print '<pre>' print_r($pagetrue) . '</pre>';


                    
// Ausgabe eigentlich aus User

                    
$arguments = array(
                        
'message' => $message,
                        
'picture' => $pictureUrl,
                        
'link'  => $link,
                        
'name' => $name,
                        
'caption' => $caption,
                        
'description' => $description,
                        
'privacy' => '{"value": "EVERYONE"}',
                        
'access_token' => $token,   // Access Token muss angegeben werden um als Fanseite posten zu können
                    
);

                    
// Versenden der Daten an API
                    
$facebook->api("/".$seitenId."/feed"'post'$arguments);  // seitenID für Fanpage, post Metohde, Daten die versendet werden sollen
                    
print '<pre>' print_r($argumentstrue) . '</pre>';
                }
                catch (
FacebookApiException $e) {
                    print 
$e;
                }
            }
            else
            {
                
//$loginUrl = $facebook->getLoginUrl(array('scope' => 'publish_stream,manage_pages')); // Berechtigungen von APP bei FB abholen, z.B. Seiten verwalten, posten etc.
                
$loginUrl $facebook->getLoginUrl(array('scope' => 'publish_stream,manage_pages,offline_access')); // Berechtigungen von APP bei FB abholen, z.B. Seiten verwalten, posten etc.
                
echo("<script> top.location.href='" $loginUrl "'</script>");


            }
        }
    }

?>
Vllt. kann mir jemand helfen oder hat bereits ähnliche Probleme gehabt.
Mit Zitat antworten