Facebook - kako ohraniti token?
4 naročniki
4 naročniki
Pozdravljeni mojstri!
Spet bi prosil za eno manjšo pomoč. Na Facebook aplikiciji, ki deluje na Page tabu mi vse dluje super, dela kot urica. Problem nastane, ko na index.php pošljem preko forme post request na thankyou.php. Takrat mi facebook javi error
( [error] => Array ( [message] => An active access token must be used to query information about the current user. [type] => OAuthException [code] => 2500 ) )
Torej, kako lahko ohranim access token tudi ko uporabnika prestavim na drug php file ?
HVALA!
6 odgovorov
ja normalno, bodisi ga na novo definiriaj v tem php fajlu, bodisi pa ga prenesi kot skriti field v formi
zaay123:
Pozdravljeni mojstri!Spet bi prosil za eno manjšo pomoč. Na Facebook aplikiciji, ki deluje na Page tabu mi vse dluje super, dela kot urica. Problem nastane, ko na index.php pošljem preko forme post request na thankyou.php. Takrat mi facebook javi error
( [error] => Array ( [message] => An active access token must be used to query information about the current user. [type] => OAuthException [code] => 2500 ) )
Torej, kako lahko ohranim access token tudi ko uporabnika prestavim na drug php file ?
HVALA!
Za take stvari se uporablja $_SESSION objekt - http://www.tizag.com/phpT/phpsessions.php.
Torej, ko ga nanovo definiram ali pa prenesem, ga ob api klicu uporabim takole?
$access_token = $this->facebook->getAccessToken();
try {
/// Let's upload photo to user's wall
$this->facebook->api('/me/photos?access_token='.$access_token, 'POST', array(
'source' => $finalURL ,
'message' => $sporocilo,
));
} catch(FacebookApiException $e) {
$result = $e->getResult();
print_r($result);
error_log(json_encode($result));
}
Access token se nanovo zgenerira, ga lahko printam, ampak nevem kako ga zdaj uporabit v klicu ko uploadam sliko? Zgornja koda mi da error ki sem ga opisal v prvem postu.
Vedno dopiši napako, ki jo PHP javi, je bistveno lažje najti pravi odgovor tako :)
Drugače pa access token dodaš kot parameter v API funkcijo :
$this->facebook->api('/me/photos, 'POST', array(
'source' => $finalURL ,
'message' => $sporocilo,
'access_token' => $access_token
));
Api metoda nato sama skonstruira query string. Če pa v prvem parametru query string deloma spišeš sam, metoda najverjetneje ne ve kako "zlimat" tvoj URL in dodatne parametre skupaj :)
P.S.: Preveri še, če imaš dovoljenje za publishanje slik (echo $accesstoken; -> https://developers.facebook.com/tools/debug/accesstoken).
Mitja, napaka je v tem, da:
- index.php -> vse dela, dobim uporabnikove podatke in delajo vsi facebook api klici.
- Post form na thankyou.php, facebook api klic več ne dela, ker kao naj ne bi bilo active access tokena.
- Zadeva na začetku dela, po nekaj urah pa zgleda token poteče al nekaj takega in thankyou page začne metat error.
Tako da, imam dovoljenje za publishanje slik, ker dela, ampak samo v štartu. Mene zanima samo, kako na thankyou page generiram nov token in kako ga uporabim, oz. če pošljem v formi iz index.php zraven token, kako ga pri api klicu pravilno uporabim ? :)
Allright, pogruntal. Če še kdo rabi, če vam javlja da nimate pravega active access tokena:
Jaz sem zadevo rešil tako, da sem na index.php v hidden input skril token ki sem ga dobil preko
$this->facebook->getAccessToken();
.
Ko se forma posta, berete input in ga samo uporabite z:
$this->facebook->setAccessToken($token);
Voilaa, in api klici morajo delovat tudi na podstraneh vašega appa :)