Facebook - kako ohraniti token?
 
gentleman 10. dec 2012 09:11:48 Pridružen od:
21. sep 2009
331 objav
381 63 5
#1

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!


všeč(1) ni všeč(0) spam(0)
 
Mešetar 10. dec 2012 09:14:14 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#2

ja normalno, bodisi ga na novo definiriaj v tem php fajlu, bodisi pa ga prenesi kot skriti field v formi


všeč(1) ni všeč(0) spam(0)
 
pavarti 10. dec 2012 09:24:04 Pridružen od:
26. okt 2011
445 objav
587 92 14
#3

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.


všeč(1) ni všeč(0) spam(0)
 
gentleman 10. dec 2012 17:14:44 Pridružen od:
21. sep 2009
331 objav
381 63 5
#4

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.


všeč(0) ni všeč(0) spam(0)
 
mitjast 10. dec 2012 19:02:38 Pridružen od:
16. nov 2011
37 objav
61 3 0
#5

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).


všeč(0) ni všeč(0) spam(0)
 
gentleman 10. dec 2012 21:11:35 Pridružen od:
21. sep 2009
331 objav
381 63 5
#6

Mitja, napaka je v tem, da:




  1. index.php -> vse dela, dobim uporabnikove podatke in delajo vsi facebook api klici.

  2. Post form na thankyou.php, facebook api klic več ne dela, ker kao naj ne bi bilo active access tokena.

  3. 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 ? :)


všeč(0) ni všeč(0) spam(0)
 
gentleman 11. dec 2012 02:17:00 Pridružen od:
21. sep 2009
331 objav
381 63 5
#7

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 :)


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se