SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > Off Topic Area

Off Topic Area Hierein gehört alles, was nichts mit PHP, MySQL, Apache oder ähnlichem zu tun hat

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.10.2013, 17: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
  #2  
Alt 04.10.2013, 13:53:31
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Facebook Api Post auf Fanseite nicht immer möglich

Hi,

ja ja Facebook und die Access Token. Hast du wirklich über den DEV Center mal geschaut wie lange dein Page Admin Access Token gültig ist?

Das ist ein ganz schönes wirrwarr und bei meinem letzten FB-App hab ich nur durch zufall und viel rumprobieren gesehen das ich von FB das falsche Token zurückbekommen habe, welches nur für mich und auch nur für 60min gültig war, das richtige hab ich dann durch irgendein Tool im DEV Center unter Page Access Token anzeigen gefunden :/

Viel Glück...

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #3  
Alt 07.10.2013, 10:22:55
ProCoder2025 ProCoder2025 ist offline
Anfänger
 
Registriert seit: Oct 2013
Alter: 37
Beiträge: 2
Hey Ckaos,

ich danke dir für deine Antwort, hat mir sehr geholfen.
Dank dir habe ich einen Denkanstoß bekommen und ich habe nochmal nach der Lebensdauer des Access Token geschaut, diese ist zwar wirklich nur 60 Minuten aber daran lag es gar nicht.
Da ich mit manage_pages arbeite, habe ich eine langlebige Dauer automatisch.

Folgender Link hat mich weitergebracht:
http://frank-it-beratung.com/blog/20...ffline_access/

Ich habe schnell einen Fake-Account eingerichtet und festgestellt das damals bei dem Test ein Access-Token irgendwie gespeichert wurde und dieser funktioniert aus unerklärlichen Gründen nur wenn ich die Testseite mind. 1x nutze.

Mit dem Fake-Account konnte ich sofort die Posts versenden.
Den Fehler muss ich jetzt mal genauer analysieren, aber zumindest kann ich erstmal von anderen Accounts problemlos auf Facebook posten.

Besten Dank...

PS:
Ok, ich hab festgestellt das Facebook macht was es will. Es funktioniert doch noch nicht, erst hat es den Anschein gemacht, aber mein Test über mehrere Browser ergab, dass es nur ein Zufall war.
Es besteht immer noch das selbe Problem. Ich fühle mich langsam wie beim Roulette.
Mit Zitat antworten
Antwort

Stichworte
facebook, facebook api, php


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Facebook API Post erstellen Schneidoa PHP Grundlagen 4 13.03.2011 19:24:30
POST Daten an externe Seite weitergeben Holstenjungs PHP Grundlagen 8 22.07.2009 14:38:37
POST UND ARRAY Dag PHP Grundlagen 14 28.11.2008 23:01:12
string wird per Post anders ausgegeben zhamoran PHP Grundlagen 2 07.09.2008 20:38:24
Downloadlink von Get auf Post umstellen lavita PHP Grundlagen 7 19.07.2008 21:12:54


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:02:08 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt