Facebook - Graph API (Posten als Likepage)

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • 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 Source Code

    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. }
    Display All
    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 Source Code

    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);
    Display All

    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