Težava s FB prijavo: Failed to connect to...

Uporabljam https://github.com/facebook/facebook-php-sdk.

Podatki se mi ne zapišejov v $user_profile = $facebook->api('/me'); verjetno zaradi spodnje napake.

([message:protected] => Failed to connect to 31.13.84.16: Permission denied)

Ve kdo v čem je problem?? Se zajevabam že drugi dan pa mi ni jasn, kaj sem naredil narobe, ker na eni drugi strani mi pa deluje BP.

8 odgovorov

Bom dal še več podatkov pa upam, da se bo našel kdo, ki malo bolj obvlada in mi pomagal...

Koda...

require_once 'facebook/src/facebook.php'; //include the facebook php sdk
$facebook = new Facebook(array(
        'appId'  => 'xy',    //app id
        'secret' => 'xy', // app secret
));
$user = $facebook->getUser();
if ($user) { // check if current user is authenticated
    try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');  //get current user's profile information using open graph
            }
         catch(Exception $e){}

} else {
}

$user je ok! Ko uprabnik klikne na vredu v Facebook login oknu, se v $user shrani Facebook id uporabnika, če se ne motim. Do tu je vse ok. Potem, ko je pa potrebno dobiti podatke iz tega id-ja se pa ti ne dobijo! Torej v $user_profile se ne vpišejo podatki o uporabniku (datum rojstva, ime, email ipd.).

Ve kdo v čem je težava??

Izpis napake..

FacebookApiException Object
(
    [result:protected] => Array
        (
            [error_code] => 7
            [error] => Array
                (
                    [message] => Failed to connect to 31.13.84.16: Permission denied
                    [type] => CurlException
                )

        )

    [message:protected] => Failed to connect to 31.13.84.16: Permission denied
    [string:Exception:private] =>
    [code:protected] => 7
    [file:protected] => /var/www/vhosts/xyxyxyxxyxyxyx/httpdocs/facebook/src/base_facebook.php
    [line:protected] => 994
    [trace:Exception:private] => Array
        (
            [0] => Array
                (
                    [file] => /var/www/vhosts/xyxyxyxxyxyxyx/httpdocs/facebook/src/base_facebook.php
                    [line] => 913
                    [function] => makeRequest
                    [class] => BaseFacebook
                    [type] => ->
                    [args] => Array
                        (
                            [0] => https://graph.facebook.com/me
                            [1] => Array
                                (
                                    [method] => GET
                                    [access_token] => xyxyxyxxyxyxyx
                                    [appsecret_proof] => xyxyxyxxyxyxyx
                                )

                        )

                )

.
.
.

G-force:
$user je ok! Ko uprabnik klikne na vredu v Facebook login oknu, se v $user shrani Facebook id uporabnika, če se ne motim. Do tu je vse ok. Potem, ko je pa potrebno dobiti podatke iz tega id-ja se pa ti ne dobijo! Torej v $user_profile se ne vpišejo podatki o uporabniku (datum rojstva, ime, email ipd.).

Ve kdo v čem je težava??

Sam id ne pomeni nič. Tvoja aplikacija izgleda nima dostopa do profila zato ti api /me ne deluje. Še enkrat preveri appid in secret (ali ga celo resetiraj), nato generiraj loginurl()...

Če imaš vse tip top kar se tiče fbja in ti še vedno ne deluje, je pa lahko konflikt v frameworku ali v čemerkoli že pač kličeš to knjižico. Recimo pri codeigniterju sem opazil da zna bit štala ker on mal po svoje filtrira headerje in session, na čemer temelji facebook sdk. V nekaterih primerih zna pomagat če zraven pošlješ tale header, najbolš kar ob vsakem requestu:

P3P: CP="We do not have a P3P policy"

1

Pozdravljen,

kolikor sem v mojih aplikacijah opazil tudi ne dela (pade na pridobivanju userja iz id-ja, ki ga vrne FB API).
Toliko za info, če boš preveril tudi kaj v tej smeri ...

Lep pozdrav,
Simon

1

dejte še enkrat mal dokumentacijo prebrat.. id ne pomeni nujno da je uporabnik prijavljen v aplikacijo zato vam api ne deluje pravilno

1

Hvala za pomoč. Bom poskusil odpraviti napako pa poročam v čem točno je bil problem.

Poskusil sem veliko stvari pa enostavno ne deluje. FB baje blokira IP. Čudno pa je, ker na testni strani (localhost) pa FB prijava deluje brez težav, ko pa dam Site URL nazaj na online www stran pa prijava enostavno ne dela. Dodal sem tudi Server IP Whitelist pa nič ne pomaga... Mi pa enaka koda na eni drugi strani deluje čisto brez težav tko da zgleda, da je res neki na strežniku narobe sam mi ni jasn kaj. Če ugotovim, poročam.

A je mogoče tako:

  1. Ko user potrdi tvojo aplikacijo in ga takoj nato hočeš prebrati ne dela - izpiše napako.
  2. Če pa greš še enkrat probat pa dela?

Potem je verjetno problem z accesstoken. Problem lahko rešiš z facebook->setAccessToken, torej da ga še 1x nastaviš preden greš iskati userja z getUser.

to mislim da je bug v zvezi z delovanjem FB javascript dela in PHP API-ja. Za ta bug fb ve, ampak ga seveda še ni razrešil.. Pa pliz javi če je to-to..

lp, Peter