Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Facebook - Udostępnianie treści na stronie przez skrypt cron'a
Forum PHP.pl > Forum > PHP
Valantir
Witam serdecznie, może ktoś z Was wie w jaki sposób wykonywać udostępnianie na swojej stronie na facebooku treści z automatu bez konieczności "ręcznego" logowania się na fb? Treści będą udostępniane przez skrypt podpięty pod crona.
warder
Czy ktoś zna rozwiązanie na powyższy problem? Jak z poziomu skryptu PHP pisać post na tablicy strony facebooka (chodzi o fanpage).

Próbowałem wykorzystać ten skrypt: https://developers.facebook.com/docs/php/ho...mple_post_links
  1. $fb = new Facebook\Facebook([
  2. 'app_id' => '{app-id}',
  3. 'app_secret' => '{app-secret}',
  4. 'default_graph_version' => 'v2.2',
  5. ]);
  6.  
  7. $linkData = [
  8. 'link' => 'http://www.example.com',
  9. 'message' => 'User provided message',
  10. ];
  11.  
  12. try {
  13. // Returns a `Facebook\FacebookResponse` object
  14. $response = $fb->post('/me/feed', $linkData, '{access-token}');
  15. } catch(Facebook\Exceptions\FacebookResponseException $e) {
  16. echo 'Graph returned an error: ' . $e->getMessage();
  17. } catch(Facebook\Exceptions\FacebookSDKException $e) {
  18. echo 'Facebook SDK returned an error: ' . $e->getMessage();
  19. }
  20.  
  21. $graphNode = $response->getGraphNode();
  22.  
  23. echo 'Posted with id: ' . $graphNode['id'];



W linijce:
  1. // Returns a `Facebook\FacebookResponse` object
  2. $response = $fb->post('/ID_MOJEJ_STRONY_NA_FB/feed', $linkData, $access_token);


jest 'access token' który sprawia mi największy problem. Otóż, jeśli na stronie https://developers.facebook.com/tools/explo...290064954686317 wygeneruje sobie access token z potrzebnymi uprawnieniami, to wszystko działa, post publikuje się na tablicy strony z poziomu aplikacji, ale acccess token działa jedynie przez najbliższe 2 godziny.. sad.gif


Podążając dalej za instrukcjami z facebooka, użyłem:
Kod
$access_token = $fb->getApp()->getAccessToken();

Jednak wtedy, dostaje komunikat:

Graph returned an error: (#200) The user hasn't authorized the application to perform this action
trueblue
Musisz wygenerować sobie "never-expire" token.
warder
W jaki sposób to zrobić, by mogło to działać z poziomu skryptu php?
Aqu
How to generate a long-lived token:
1. Start with a short-lived token generated on a client and ship it back to your server.
2. Use the user token, your app ID and app secret to make the following call from your server to Facebook's servers:

  1. GET /oauth/access_token?
  2. grant_type=fb_exchange_token&
  3. client_id={app-id}&
  4. client_secret={app-secret}&
  5. fb_exchange_token={short-lived-token}


https://developers.facebook.com/docs/facebo...n-and-extension
trueblue
Long-lived token ma czas życia 60 dni.
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.