Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie wpisu na Fanpage Facebook
Forum PHP.pl > Forum > PHP
thomas2411
Witam,

mam problem z wysyłaniem wpisu na Fanpage. Mam założoną aplikację i podpiętą do niej stronę Facebook. Korzystam akurat z Symfony 2 i Bundle Facebooka, ale to chyba nie ma tu zbytnio znaczenia. Wysyłam wpis tak jak poniżej, zwraca mi status OK plus id wpisu, ale wpis nie pojawia się na tablicy. Czy ktoś wie co może być tego powodem?

  1.  
  2. $facebook = new \Facebook(array(
  3. 'appId' => $myAppId,
  4. 'secret' => $myAppSecret,
  5. 'cookie' => false,
  6. ));
  7.  
  8.  
  9. //Get App Token
  10. $token = $facebook->getAccessToken();
  11. //Try to Publish on wall or catch the Facebook exception
  12. try {
  13.  
  14. $args = array('access_token' => $token,
  15. 'from' => $myAppId,
  16. 'link' => 'http://mypage.pl',
  17. 'name' => 'My Page',
  18. 'caption' => $object->getTitle() ,
  19. 'description' => 'Description....',
  20. 'message' => $object->getText(),
  21. );
  22.  
  23. $result = $facebook->api('/'.'$myAppId'.'/feed/', 'POST', $args);
  24. }
  25.  
  26. //If the post is not published, print error details
  27. catch (FacebookApiException $e) {
  28. ....
  29. ));
  30. }
cv65
  1. $result = $facebook->api('/'.'$myAppId'.'/feed/', 'POST', $args);

Zamień na to:
  1. $result = $facebook->api('/me/feed', 'post', $args);
thomas2411
Wywala mi wtedy błąd:

An active access token must be used to query information about the current user.
BlackDante
dodaj 'scope' => 'publish_stream', do konfiguracji Facebooka
  1. $facebook = new Facebook(array(
  2. 'appId' => $myAppId,
  3. 'secret' => $myAppSecret,
  4. 'cookie' => false,
  5. 'scope' => 'publish_stream',
  6. ));


albo dodaj potrzebne uprawnienia w ustawieniach aplikacji: https://developers.facebook.com/apps/APP_ID/permissions

polecam drugą opcję ponieważ wtedy dostajemy tylko 1 popup z zapytaniem o autoryzację
thomas2411
Nie mam tego obcykanego, ale nie obejdzie się bez wyskakujących okien o autoryzację itp? Z niektórych tutoriali odniosłem, może mylne, wrażenie, że wystarczy w ustawieniach aplikacji wszystko ustawić, a potem w panelu admina na mojej stronie po prostu klikać publikuj i wszystko wysyła się na Tablicę.
yevaud
wrażenie było mylne smile.gif
BlackDante
jeżeli chcesz mięć pełną władzę nad tym co trafia na wall użytkownika musisz poprosić go o uprawnienia, innego sposobu nie ma. Jeśli nie chcesz prosić o uprawnienia możesz zadowolić się share buttonem wink.gif

  1. <a type="button" name="fb_share">Share on Facebook</a> <script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>


ale wtedy użytkownik ma pełną kontrolę co, jak i kiedy wysyła się na jego ścianę.
thomas2411
Czyli podsumowując użytkownik loguje się do panelu admina, tam najlepiej, żeby miał przycisk zalogowania się jeszcze do facebooka i dodania zezwolenia, a dopiero potem idzie np do listy artykułów i klika sobie Publikuj. Wtedy wysyłam /me/feed i powinno się pojawić?

Macie może jakiś fajny tutorial do tego od A-Z?

A co do Share button, no to chodzi raczej o sytuację kiedy użytkownik zalogował się na panel admina, dodał artykuł, obrazek, wklepał nawet krótki tekst do FB i klika zapisz. Wtedy artykuł pojawia się na jego stronie, we Frontend. Będąc cały czas w panelu admina, w liście artykułów, przy najnowszym artykule ma przycisk. Klika go i przez AJAX wysyła się w tle wpis na jego Fan Page przez /me/feed z odpowiendim orbazkiem, linkiem do artykułu i tym krótkim opisem. O taki scenariusz chodzi.
BlackDante
przykład masz w samej dokumentacji Facebooka: http://developers.facebook.com/docs/refere...p/facebook-api/ (Post a link to a User's wall using the Graph API) tylko że funkcję $facebook->api wykonujesz dopiero po jakiejś akcji użytkownika a nie po zalogowaniu się wink.gif
thomas2411
Udało się ! smile.gif

Dzięki wszystkim za pomoc.

Problemy były dwa:

1. Nie używałem logowania.

2. Wstawiałem do feed APP ID zamiast Page ID.

Ale i tak dziwna sprawa, że nie dostawałem zwrotki w postaci błędu, a dostawałem Post id, tak jakby wszystko było OK.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.