NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Přihlašování přes Facebook

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Workedat Eeiics:29.5.2017 9:54

Zdravím,
máme přihlašování přes facebook, které nám přestalo zničeho nic fungovat.
Při získání údajů přihlášeného uživatele facebooku přes metodu ->api('/me') vypisuje Fatal Error: "An active access token must be used to query information about the current user".
Nepomohla nám ani různá řešení, které jsme zkoušeli najít na internetu jako třeba:
získání $fb->getAccessToken() a následné nastavení $fb->setAccessToken() před $fb->api('/me').
Pomohlo jedině když se místo '/me' dá konkrétní UID uživatele facebooku. UID bych měl získat přes $fb->getUser(), jenže to vypisuje '0', takže to taky nepomohlo.
Zkoušel jsem i vyměnit SDK knihovnu, ale vypsalo to vždy ten stejný problém.
Napadá mne snad, jestli chyba není v tom, že SDK mi 'access token' vypisuje jiný než je uvedený na stránce developers.fa­cebook.com/to­ols/accesstoken/ .
Díky

 
Odpovědět
29.5.2017 9:54
Avatar
shaman
Člen
Avatar
Odpovídá na Workedat Eeiics
shaman:30.5.2017 9:48

Kedze ti $fb->getUser() vracia null, tak ti expiroval token a musis si vygenerovat novy.

Nahoru Odpovědět
30.5.2017 9:48
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
Odpovídá na shaman
Workedat Eeiics:30.5.2017 14:04

Děkuji za odpověď. Ten nový token mám vygenerovat konkrétně kde? V developers.fa­cebook.com? $fb->setAccessToken() mi nepomáhalo, to jsem už zkoušel

 
Nahoru Odpovědět
30.5.2017 14:04
Avatar
shaman
Člen
Avatar
Odpovídá na Workedat Eeiics
shaman:30.5.2017 14:34

Viem ze token si mozes vyziadat vzdy novy ale kedze sa casto nemeni, teda myslim ze expiry date je dost dlhe, tak ho mozes ziskat raz a potom ho vyuzivat znovu. Chod na tuto URL:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=TVOJCLIENTID&client_secret=TVOJCLIENTSECRET

a nahrad tam client id a secret. Malo by ti to vratit json s tvojim novym access tokenom, ktory si potom vloz do kodu.

Nahoru Odpovědět
30.5.2017 14:34
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
Odpovídá na shaman
Workedat Eeiics:31.5.2017 10:36

Udělal jsem přesně to jak to píšeš...vrátili mi to nový access token...V kódu jsem dal pak toto:
$fb->setAccessToken(/no­vy_token/)
hned pod instanci
$fb = new Facebook(array(
'appId' => 'xxxxxxxx',
'secret' => 'xxxxxxxx'
))
Ale stále to samé :-( Jestli to nemám ten token nastavovat jinde, jinak? :-)

 
Nahoru Odpovědět
31.5.2017 10:36
Avatar
Odpovídá na Workedat Eeiics
Neaktivní uživatel:31.5.2017 10:49

Koukni se v debuggeru, jestli ten token neni expirovany.
https://developers.facebook.com/…/accesstoken

PS: Kdyz tam zadas token a das debug, tak dole je tlacitko "Extend Access Token", to by melo ten token prodlouzit(aspon me to prodlouzilo token na permanentni)

Editováno 31.5.2017 10:51
Nahoru Odpovědět
31.5.2017 10:49
Neaktivní uživatelský účet
Avatar
Workedat Eeiics:31.5.2017 12:42

To tlačítko "Extend Access Token" bylo jen při kliku na Debug u "User Token" (viz screen). U Access Token ho tam nemám, tam je jen Info. Když jsem ale klikl na to tlačítko aspoň u toho User Token, tak se tam nějaký kod vygeneroval. Ten když jsem dal pak do ->SetAccessToken, tak mi to zafungovalo, ale jen na toho uživatele, pod kterým je ten developers , nikoliv na kohokoliv kdo je na FB zrovna přihlášený. :-(

 
Nahoru Odpovědět
31.5.2017 12:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.