Povlačenje sadržaja sa facebook grupa

Jel itko povlači sadržaj iz grupa i jel mu to trenutno radi?

Meni je iznenadno stalo, a grupa je sa sigurnošću i dalje “otvorenog” tipa. (Jer znam da se ne mogu čitati zatvorene grupe)

Itko?

Jel moj blok coda možda prošlost:

require_once('php-sdk/facebook.php');
$config = array('appId' => 'xxx','secret' => 'xxx');
$facebook = new Facebook($config);
$feed= $facebook->api('/'.$groupID.'/feed/','GET', array('fields'  => 'id,from, message, link, name, created_time', 'offset' => $offset, 'limit' => $limit));

Vidim sad na stranici: https://developers.facebook.com/docs/graph-api/reference/v2.2/group/feed

upute sljedeće: (treba kliknut na Readning->PHP SDK)

/* PHP SDK v4.0.0 */
/* make the API call */
$request = new FacebookRequest(
  $session,
  'GET',
  '/{group-id}/feed'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */

Habali sebe što nemogu biti dosljedni sami sebi…a ne da se mijenjaju svak malo…grrrr

Taj FB API je uzas … svako malo se mijenja, nadogradjuje … pa deveoperi stalno moraju drkati nesto po code-u.

1 Like

Dok god ga semantički verzioniraju, I’m fine with it.

Pa kad radis za sebe neki projekt onda ti je svejedno, ali kad radis nesto korisnicima … razvijes im, naplatis … i kazes da nema odrzavanja kao takvog … i onda oni promjene pola api-a … i onda je sranje. Jer korisnici ne razumiju ili ne zele razumiti da opet nesto moraju platiti a jebu te ko majmuna na telefon zasto im ne radi a platili su …

1 Like

Pa ako razvijaju nove stvari i semantički verzioniraju svoj API, ne bi smjelo biti backwards incompatibility issuea.

Naravno, ako samo krpaju istu verziju i slome backwards compatibility, onda je to već propust na njihovoj strani koji se ne bi smio događati.

Ne pratatim razvoj njihovog API-a i rijetko sam ga koristio … no dogadjalo se par puta da je nesto radilo xx mjeseci i onda najednom je prestalo … jer je neka funkcija, dio apia ili neznam sto … zamijenjen novom verzijom a prethodna ne radi … ovo ono, i eto sranja. Gubis vrijeme … sredis problem, zaradio nisi nista :slight_smile:

Pa to sad nisam siguran jel ja koristim prestar code ili šta…jer tom logikom ja niš nebi trebao dirati ako je dosad radilo, i ovo bi mogao razmatrati kao privremeni problem do facebooka. Sve da je i tako…ne vjerujem da će brzo otkriti bug koji imaju na verziji koju pokopavaju u prošlost…

A bacio sam malo oko i na neke ostale funkcije koje koristim od fb API-a, i neki od zahtjeva na client strani bacaju očigledne greške, pošto mi firebug vrišti na sve strane…a sve povezano sa facebookovim requestima. Stvar još koliko toliko i šljaka, ali firebug vrišti. I ne šljaka baš sve!

Ja pratin razvoj njihovog api-a. Ovih dana gase polako support za stare verzije. Svi bi se tribali saltat na v2.2
I nazalost, facebook je notoran u svojim nedokumentiranim promjenama na api-u-

Pomagaj onda pliz ovdje samo da dođem do najosnovnijeg primjera koji radi

Tamo si ocito lose/krivo uglavio njihov SDK u svoj app. Ako ne mozes use-at fb klasu. Moze bit i da nisi cache pocistio, i da ti autoloader ima krive stvari definirane. Naravno da ti sve puca ako ne mozes useat klasu.
Iskreno, zaobiđi SDK. Ja nisan taka SDK vec misecima. Radi call direktno na graph api. Vidi recimo:
https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=175305182611873%2Ffeed&version=v2.3&

Ockej, ali ja sam mislio da je upravo SDK veza između graph API-a i requestova.

Nevidim tamo, a niti ovdje: https://developers.facebook.com/docs/graph-api/using-graph-api/v2.3#fieldexpansion
…niti jednog slova oko toga kako ću sa PHP-om raditi takve requestove…nije valjda da sa curl?

Nije valjda? A sta mislis kako njihov SDK radi? :slight_smile: Naravno, CURL.

Ok,
…nego da rezumiramo nešto oko permissiona/tokena.

Prije mi nije trebao nikakav token da čitam otvorene grupe…
…sad odem na graphAPI koji si linkao, i stavim grupaID/feed …dobijem response da mi fali token.
Onda gore iznad kliknem “get_accsess_token” i uzmem token na osnovi samo prve kvačice. “user_about_me” …te na osnovu toga tokena dobijem feed koji sam prvotno ionako imao pravo vidjeti.

Zatim…kopiram taj isti token u aplikaciju i proslijedim ga kao parametar:

$feed= $facebook->api('/'.$groupID.'/feed/','GET', array('fields'  => 'id,from, message, link, name, created_time', 'offset' => $offset, 'limit' => $limit, 'access_token'=>$TOKEN,'debug'=>'all'));

…i to čudo proradi na osnovu nekog tokena dobivenog tamo negdje. Ali proradi na kratko vrijeme…valjda dok ne istekne expire time.

Zatim, probam prije povlačenja feeda, generirati token:

 $token=$facebook->getAccessToken();

…i koristeći tako dobiven token kod istog requesta kao gore dobijem warning:

“The behavior of this request may be affected in v2.0 and higher: The /{user-id}/feed endpoint will now only return data if the the target have granted the ‘read_stream’ or ‘user_posts’ permission.”

Više nisam siguran jel ja uopće znam čemu služe tokeni, ili ovo gore stvarno ima smisla??

Lepo ti error kaze, moraces da submitujes aplikaciju na review da bi mogao da izvrsis to sto hoces. Udjes na Status & Reviews i nadjes te permisije read_stream i user_posts.

Moj engleski jeste očajan, meni se sljedeći dio:

The /{user-id}/feed endpoint will now only return data if the the target have granted the ‘read_stream’ or ‘user_posts’ permission.

…učino da kaže sljedeće: Feed će moći biti dohvaćen ako meta ima dozvolu ‘read_stream’ ili ‘user_posts’.

Pod meta smatram na ono što ciljamo, a ne onoga tko cilja, tj. aplikaciju. A u mom slučaju meta (fb grupa) ima dozvolu da se čita od bilo koga…

Nadalje, ako zavirim u Status & Reviews, što kažu o tome “read_stream”

Prvo, vidim neki uskličnik…kao da je jako bitan permission koji će produžiti vrijeme ispitivanja aplikacije.
Pitam se, odjednom je posebno važno nešto što do jučer nije trebalo nikakav permission?

Nadalje

Provides access to read the posts in a person's News Feed, or the posts on their Profile.

Ako zamjenim riječ “person’s news feed”, sa “group news feed” …to bi bilo to.

I sljedeću rečenicu su označili sa crvenim x-om, tako da je cijela pisana u negaciji. Nisam je uspio najbolje shvatiti niti uz uporabu logičkih operatora nebi li nekako negirao tu negaciju. Nije dovoljno zeznuto što je negacija od “i” -> “ili”, nego se još čini kao da su u pola teksta zaboravili da pišu u negaciji

This permission is granted to apps building a Facebook-branded client on platforms where Facebook is not already available. For example, Android and iOS apps will not be approved for this permission. In addition, Web, Desktop, in-car and TV apps will not be granted this permission.

Sve u svemu, ja njih niš ne kužim…
-u jednu ruku sa tamo negdje generiranim tokenom čitam feed, u drugu ruku sa generiranim tokenom regularno putem aplikacije nesmijem čitati feed
-u jednu ruku sam to radio do sada za “džabe”, u drugu ruku sad to ističu kao special review token
-u jednu ruku, mnoge errore su mi detaljno opisali, čak i bacili link na detaljniju problematiku…u drugu ruku, ovdje kao da nisu shvatili niti da ja čitam otvorenu grupu, a ne nečiji profile feed

meni to sve djeluje kao bunch of unsorted bugs :confused:

Evo ti kod za povlacenje sadrzaja sa otvorene grupe, ne trebaju ti te permisije uopste, ne znam gde si zapeo:

try {
  $session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
  // When Facebook returns an error
} catch( Exception $ex ) {
  // When validation fails or other local issues
}
 
// see if we have a session
if ( isset( $session ) ) {
  // graph api request for user data
  $request = new FacebookRequest(
  $session,
  'GET',
  '/group_id/feed'
);

$response = $request->execute();
$graphObject = $response->getGraphObject();

  // print data
  echo  print_r( $graphObject, 1 );
} else {
  // show login url
  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}

Sve ti je ovde

Ma pukao sam jučer :wink: …nisam više mogao niti misliti, samo sam htio pokrpati da ne “curi”.
Jer baš ovih dana me stiže tona novih obveza (za vikend selim, a danas priprema za sutra za jednu prezentaciju…i još jedan rok mi visi v zraku koji je trebao već biti gotov) …tak da sam morao pod hitno nešto rješiti, jer bi se sve inače previše odužilo…
Još jučer za inat se pola dana nisam mogao niti spojit na ovaj server…ma dan za upamtit.

Uspio sam nešto zmuljati uglavnom, neko privremeno rješenje…pa ću sad moći hladnije glave lagano se prešaltati na što se već treba prešaltati. Prvo treba ići jest…nisam od jučer od podne xd

Jel problem ako mi prosljediš parametre za CURL, jučer mi to jednostavno nije polazilo za rukom. Dobivao sam samo false.