Facebook - Graph API (Posten als Likepage)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Facebook - Graph API (Posten als Likepage)

    Hallo,
    ich wollte eine automatische "Facebookpost"-Funktion schreiben. Sie klappt auch soweit, nur, da ich bei dem ganzen Authentifizierungskram von Facebook noch nicht durchblicke (die haben ja gefühlte 50 verschiedene Authentifizierungsmethoden), möchte ich hier einmal fragen:

    PHP-Quellcode

    1. $helper = new FacebookRedirectLoginHelper(URL::action('CronjobController@getFacebookLoginSuccess', 'abc'));
    2. $session = null;
    3. try {
    4. $session = $helper->getSessionFromRedirect();
    5. }
    6. catch(Exception $ex) {
    7. return Redirect::action('CronjobController@getFacebookLogin', 'abc');
    8. }
    9. if($session) {
    10. $request = new FacebookRequest($session, 'GET', '/me/accounts');
    11. $response = $request->execute();
    12. $graphObject = $response->getGraphObject();
    13. $accessToken = '';
    14. $data = $graphObject->getProperty('data');
    15. foreach($data->asArray() AS $v) {
    16. if($v->id == '244740279065935') {
    17. $accessToken = $v->access_token;
    18. break;
    19. }
    20. }
    21. $data = array();
    22. $data['picture'] = 'http://battlerap.club/image/iStock_000035869706_Large%20-%20Kopie.jpg';
    23. $data['link'] = 'http://google.de';
    24. $data['message'] = '...';
    25. $data['caption'] = 'battlerap.club Version 2.0 kommt!';
    26. $data['description'] = 'Beschreibung 123';
    27. $data['admin_creator'] = '244740279065935';
    28. $data['access_token'] = $accessToken;
    29. $curl = new anlutro\cURL\cURL();
    30. $response = $curl->newRequest('post', 'https://graph.facebook.com/battlerap.club/feed', $data)->setOptions([CURLOPT_SSL_VERIFYPEER=>false, CURLOPT_SSL_VERIFYHOST=>2])->send();
    31. var_dump($response);
    32. }
    Alles anzeigen
    Es klappt soweit auch, siehe hier:



    Nur folgende Frage: wenn jetzt jemand anders einen Artikel über die Website schreibt, soll dies auf der Facebookseite gepostet werden. Nur hat der ja keine Berechtigungen für die Facebookseite. Kann man das daher irgendwie "userunabhängig" gestalten, also so, dass sich der Server quasi einen Accesstoken holt und das gleiche passiert - statt das über den User zu machen?

    Ich blicke da leider nicht wirklich durch und würde mich über Hilfe freuen.

    Lieben Gruß,
    Vincent
    "Das müsste jetzt funktionieren..."

    ---
    Mit freundlichen Grüßen,
    Vincent Petritz
  • Es funktioniert auch - nur möchte ich das möglichst userunabhängig machen.

    Habe mir nun über die Graph API per /me/accounts einen Access Token der Fanpage geholt und diesen nun angegeben, es klappt nun wie folgt:

    PHP-Quellcode

    1. $data = array();
    2. $data['picture'] = 'http://battlerap.club/image/iStock_000035869706_Large%20-%20Kopie.jpg';
    3. $data['link'] = 'http://google.de';
    4. $data['message'] = '...';
    5. $data['caption'] = 'battlerap.club Version 2.0 kommt!';
    6. $data['description'] = 'Beschreibung 123';
    7. $data['admin_creator'] = '244740279065935';
    8. $data['access_token'] = Config::get('tokens.facebook.token');
    9. $curl = new anlutro\cURL\cURL();
    10. $response = $curl->newRequest('post', 'https://graph.facebook.com/battlerap.club/feed', $data)->setOptions([CURLOPT_SSL_VERIFYPEER=>false, CURLOPT_SSL_VERIFYHOST=>2])->send();
    11. Api::createRequest('Facebook', $response);
    Alles anzeigen

    Also dem $data-Array einfach als access_token den Access Token der Graph API übergeben. Klappt nun ohne vorherige Authentifizierung. Aber wie lange der Access Token nun gültig ist, weiß ich leider nicht. :/
    "Das müsste jetzt funktionieren..."

    ---
    Mit freundlichen Grüßen,
    Vincent Petritz