[FB API] Niets lukt. krijg geen result maar wel authorized

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 02:09

F.West98

Alweer 16 jaar hier

Topicstarter
Hallo,

Ik ben nu al 2 dagen bezig met een facebook-login mogelijkheid op mijn site. Ik wil het idee van http://www.realfoot.com/facebook_connect/tutorial.php volgen. Dus inloggen via FB -> verbinding koppelen in DB en daarna auto-inlog.
Ik heb al een inlogbutton, en ik kan authorizen. Waar gaat het mis:
Ik kan niet worden doorgestuurd. Na authorizen blijft ie op dezelfde pagina. Ik weet wel iets van een JS functie maar dat werkt niet. Hoe word ik doorgestuurd naar de fb_connect? (de documentatie is ook niet duidelijk)

Op de fb_connect pagina krijg ik geen UserID. Ik krijg gewoon 0, hij is wel gewoon authorized en tokens ed werken goed. Zelfs dit werkt niet:
PHP:
1
2
3
4
5
6
7
8
9
10
11
include('facebook.php');
$config['appId'] = 'LANG_GETAL';
$config['secret'] = 'NOG_EEN_SLEUTEL';

$fb = new Facebook($config);
$fb_id = $fb->getUser();
if($fb_id) {
    echo $fb_id;
} else {
    echo 'Geen user';
}

Dit is wat gewoon wordt beschreven in de documentatie en moet gewoon werken.
Verder is de token zo opgebouwd: appId | secret
Deze is wel gewoon geldig.

Wat doe ik mis of gaat er mis? (ik zie vast iets over het hoofd maar ik kom er niet uit, elke tutorial geeft hetzelfde, deze manier)

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Handleiding al bekeken? https://developers.facebook.com/docs/reference/php/

Ik zie nergens dat je een redirect uitvoert ook, waar zou die nu magisch vandaan moeten komen?
Author's Note: 01/22/2011

This tutorial is now out of date. Facebook has implemented a new way to do all of this, and this tutorial shows the "old" way. It will however still work, so I'm leaving it up here for now. Hopefully I can update it at somepoint to the new techniques. -P.G.
Had je dat al gezien? Ondanks dat hij zegt dat het zou moeten werken kun je beter de officiele documentatie aanhouden.

[ Voor 95% gewijzigd door Cartman! op 27-06-2012 08:23 ]


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 03-10 22:04

MueR

Admin Tweakers Discord

is niet lief

Je weet ondertussen toch wel dat dit soort topics niet in Webdesign, Markup & Clientside Scripting horen?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 02:09

F.West98

Alweer 16 jaar hier

Topicstarter
Ja, maar die vind ik te onduidelijk
Ik zie nergens dat je een redirect uitvoert ook, waar zou die nu magisch vandaan moeten komen?
Ik kan nergens vinden hoe je dat aanpakt en aangezien je bij de settings een veld hebt site URL, waar staat dat ze enkel daarnaartoe doorsturen :P
[...]


Had je dat al gezien? Ondanks dat hij zegt dat het zou moeten werken kun je beter de officiele documentatie aanhouden.
Ja, dat ontdekte ik nadat een functie niet werkte. Maar de manier van werken en aanpak staat daargoed beschreven... (ik zei ook, die manier)
MueR schreef op woensdag 27 juni 2012 @ 10:47:
Je weet ondertussen toch wel dat dit soort topics niet in Webdesign, Markup & Clientside Scripting horen?
Ehm.. Klopt :P
Nu ik eens aandachtig naar die naam keek is het best logisch, maar ik dacht zo van, Facebook, front-end, php is een tag in WEB (in dat lijstje op homepage) en ik altijd uit PRG werd gekickt heb ik het in WEB gezet :P


Het probleem is dus dat wat de documentatie als simpelste geeft (docs) niet eens werkt. Wel authorized maar ik snap niet wat er niet werkt...

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
F.West98 schreef op woensdag 27 juni 2012 @ 14:52:
Het probleem is dus dat wat de documentatie als simpelste geeft (docs) niet eens werkt. Wel authorized maar ik snap niet wat er niet werkt...
Wat werkt er dan volgens jou niet? Uit ervaring kan ik je vertellen dat die voorbeelden prima werken namelijk. Je legt ook totaal niet uit waar je op klem loopt. Als de documentatie magie is voor je dan is het gebruik van de FB API misschien niet helemaal voor je weggelegd.

Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 02:09

F.West98

Alweer 16 jaar hier

Topicstarter
Cartman! schreef op woensdag 27 juni 2012 @ 14:59:
[...]

Wat werkt er dan volgens jou niet? Uit ervaring kan ik je vertellen dat die voorbeelden prima werken namelijk. Je legt ook totaal niet uit waar je op klem loopt. Als de documentatie magie is voor je dan is het gebruik van de FB API misschien niet helemaal voor je weggelegd.
Het is niet per sé magie, maar sommige dingen, zoals redirecten na accept staan er gewoon niet in. Ik kan ze niet vinden, ook niet in de voorbeelden.

Waar ik op vast loop, zelfs als ik code 1 op 1 kopieer, is dat UserID 0 blijft. Altijd.

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
F.West98 schreef op woensdag 27 juni 2012 @ 15:38:
[...]

Het is niet per sé magie, maar sommige dingen, zoals redirecten na accept staan er gewoon niet in. Ik kan ze niet vinden, ook niet in de voorbeelden.
Nee, in het voorbeeld staat een linkje waar je zelf op moet klikken, daar een automatische redirect van maken is niet zo moeilijk natuurlijk.
Waar ik op vast loop, zelfs als ik code 1 op 1 kopieer, is dat UserID 0 blijft. Altijd.
Het voorbeeld toont nergens het userId dus blijkbaar bekijk je niet de documentatie.

Bovendien zeg je nu weer alleen maar dat het niet lukt maar leg je niet uit wat je aan debugging doet Volgens mij wijst iedereen je daar elk topic weer opnieuw op maar dringt het niet echt door dat we geen glazen bol hebben.
Wel authorized
Wat je daar bijvoorbeeld mee bedoelt is mij een raadsel zegmaar... leg uit, post code, maak een uitgekleed voorbeeld.

[ Voor 7% gewijzigd door Cartman! op 27-06-2012 15:43 ]


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 02:09

F.West98

Alweer 16 jaar hier

Topicstarter
Cartman! schreef op woensdag 27 juni 2012 @ 15:41:
[...]

Nee, in het voorbeeld staat een linkje waar je zelf op moet klikken, daar een automatische redirect van maken is niet zo moeilijk natuurlijk.

[...]

Het voorbeeld toont nergens het userId dus blijkbaar bekijk je niet de documentatie.
PHP:
1
2
3
<?php
if($user_id) { /*...*/ }
?>

Dus niet 0, bij mij is 'ie altijd 0 en komt 'ie hier niet langs, en gaat 'ie dus naar
PHP:
1
2
3
4
5
6
7
8
9
<?php
else {

      // No user, print a link for the user to login
      $login_url = $facebook->getLoginUrl();
      echo 'Please <a href="' . $login_url . '">login.</a>';

    }
?>

Maar ik ben al ingelogd! (dat is dus authorized)
Bovendien zeg je nu weer alleen maar dat het niet lukt maar leg je niet uit wat je aan debugging doet Volgens mij wijst iedereen je daar elk topic weer opnieuw op maar dringt het niet echt door dat we geen glazen bol hebben.
Ik neem de code van FB-vb 1 op 1 over maar het werkt niet (uiteraard wel juiste vars)
[...]

Wat je daar bijvoorbeeld mee bedoelt is mij een raadsel zegmaar... leg uit, post code, maak een uitgekleed voorbeeld.
OK, een voorbeeld :P
Ik heb 2 pagina's in mijn voorbeeld. Een connect.php en een fb_connect.php. De connect verbindt met de db, laadt FB en nog veel meer. fb_connect.php echo't UserID of als niet-ingelogd een inlogknop.
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
//connect.php
/* Facebook-config */
$fb_config['appId'] = 'Werkt gewoon voor de inlog-knop';
$fb_config['secret'] = 'Is OK';

include('facebook.php');
$fb = new Facebook($fb_config);
$fb_id = $fb->getUser();
?>

Geen errors in dit gedeelte.
PHP:
1
2
3
4
5
6
7
8
9
<?php
// fb_connect.php
include('connect.php');
if($fb_id) {
    echo $fb_id;
} else {
    echo '<a href="'.$fb->getLoginUrl().'">Login</a>';
}
?>

Dit werkt dus niet, als ik op loginurl klik vraagt ie gewoon om toetsemming en ik accept dat, maar ik krijg er gewoon geen UserID uit... Dit is nodig om daarna email e.d. op te halen (die ik in een db wil zetten, dat zal wel lukken)

Wat doe ik fout? Ik mis vast iets cruciaals bij de secret's, tokens e.d.

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
F.West98 schreef op woensdag 27 juni 2012 @ 16:16:
[...]

PHP:
1
2
3
<?php
if($user_id) { /*...*/ }
?>

Dus niet 0, bij mij is 'ie altijd 0 en komt 'ie hier niet langs, en gaat 'ie dus naar
PHP:
1
2
3
4
5
6
7
8
9
<?php
else {

      // No user, print a link for the user to login
      $login_url = $facebook->getLoginUrl();
      echo 'Please <a href="' . $login_url . '">login.</a>';

    }
?>

Maar ik ben al ingelogd! (dat is dus authorized)
Ingelogd bij Facebook is iets anders dan authorized zijn met jouw app.
OK, een voorbeeld :P
Ik heb 2 pagina's in mijn voorbeeld. Een connect.php en een fb_connect.php. De connect verbindt met de db, laadt FB en nog veel meer. fb_connect.php echo't UserID of als niet-ingelogd een inlogknop.
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
//connect.php
/* Facebook-config */
$fb_config['appId'] = 'Werkt gewoon voor de inlog-knop';
$fb_config['secret'] = 'Is OK';

include('facebook.php');
$fb = new Facebook($fb_config);
$fb_id = $fb->getUser();
?>

Geen errors in dit gedeelte.
PHP:
1
2
3
4
5
6
7
8
9
<?php
// fb_connect.php
include('connect.php');
if($fb_id) {
    echo $fb_id;
} else {
    echo '<a href="'.$fb->getLoginUrl().'">Login</a>';
}
?>

Dit werkt dus niet, als ik op loginurl klik vraagt ie gewoon om toetsemming en ik accept dat, maar ik krijg er gewoon geen UserID uit... Dit is nodig om daarna email e.d. op te halen (die ik in een db wil zetten, dat zal wel lukken)

Wat doe ik fout? Ik mis vast iets cruciaals bij de secret's, tokens e.d.
Als jij op accept klikt bij Facebook, waar stuurt ie je dan terug naartoe?

Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 02:09

F.West98

Alweer 16 jaar hier

Topicstarter
Naar dezelfde pagina, fb_connect.php omdat de login-link in de testcase een redirect_url heeft naar de fb_connect.php.
In de JS-versie die er moet komen, zit de inlogknop op index.php en komt daar weer een andere check, maar ook afhankelijk van de UserID. Deze is met JS en ik vroeg me ook af hoe ik die laat doorsturen, is dat een JS-optie? Of... Staat nergens beschreven

edit:
Ingelogd bij facebook EN authorized met mijn app. Hij staat in mn lijstje apps en nogmaals klikken maakt een auto-redirect/-accept. Als ik de app delete moet ik opnieuw toestemming geven.

[ Voor 20% gewijzigd door F.West98 op 27-06-2012 16:36 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Dan moet je gaan debuggen dus, FB SDK gebruikt sessions en cookies voor de opslag van de gegevens.. worden die wel gezet?

Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 02:09

F.West98

Alweer 16 jaar hier

Topicstarter
Ik zie géén cookies.. (onder mijn domein?)
Wel session_info, namelijk:
fb_appId_state = eencodedieheellangis

hierover zie ik niets in de docs, wat moet je ermee?


Hmm..
Like this:
Nadat ik dit heb bijgevoegd in de JS werkt het ineens wel?
Allright :P
JavaScript:
1
2
3
4
5
6
7
8
FB.getLoginStatus(function(response) {
                        if(response.status === 'connected') {
                            var accessToken = response.authResponse.accessToken;
                            setCookie('accessToken', accessToken, 2);
                        } else {
                            
                        }
                    });


Nog geen access.. Dit IP mag niets, zelfde IP als opgegeven?

[ Voor 158% gewijzigd door F.West98 op 27-06-2012 18:52 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ben je nu bezig met JS SDK of PHP SDK? Door elkaar gaan gebruiken omdat je er niet uitkomt heeft weinig zin natuurlijk.

[ Voor 51% gewijzigd door Cartman! op 27-06-2012 18:56 ]


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 02:09

F.West98

Alweer 16 jaar hier

Topicstarter
Cartman! schreef op woensdag 27 juni 2012 @ 18:56:
Ben je nu bezig met JS SDK of PHP SDK?
Ik had dus de JS SDK nodig om de PHP SDK te laten werken :P
Het werkt nu in ieder geval. Als er weer iets niet lukt zie je t hier wel

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Dan gaat er echt nog steeds iets verkeerd. Ze zijn weliswaar samen te gebruiken maar los kunnen ze ook gewoon werken. Maarja, als jij t op deze manier goed vind dan zal t wel ;)

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 02:38

alienfruit

the alien you never expected

Hoe debug je eigenlijk FB API dingen? Ik krijg vaak een melding zoals "An error has occurred. Try again later" en specifiek alleen in één browser (bijv. Firefox 12 terwijl het prima werkt in FF13 en andere browsers). Alleen die melding helpt niet echt...

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Zulk soort meldingen zijn meestal niet te debuggen, er gaat vaak genoeg simpelweg een call stuk bij FB helaas. Soms heeft het ermee te maken dat ie ivm. browser-specifieke implementaties je accesstoken niet goed meegeeft en krijg je rare dingen terug.

Meestal pak ik een debugproxy (Charles ftw) erbij en vergelijk ik de calls van de browsers om te kijken wat er anders is.

[ Voor 19% gewijzigd door Cartman! op 28-06-2012 09:55 ]

Pagina: 1