1

非常に奇妙です。私はに設定されたCookieを使用してJavascript SDKを通じてFacebookのログインを行い、コールバックでそのCookieを取得してから、自分のデータベースに訪問者を追加します。JavascriptによるFacebookのログインは、モバイルとローカルホストでは動作しますが、デスクトップコンピュータでは動作しません。

テストアプリでモバイルとローカルホストで動作していますが、すべてのデスクトップコンピュータ(iMacでは動作しますが、ノートパソコンでは動作しません)では動作しません。 私は、関係するブラウザでキャッシュとクッキーをクリアしましたが、何も変わりません。

var_dumpを使用すると、$helper->getAccessTokenはNULL変数を返します。それ以外の場合は空白のページが表示されます。

私は自分のウェブサイトをSSLに入れる直前に正常に動作していました。

ご迷惑をおかけして申し訳ございません。

私のウェブサイトはオンラインです:www.KomuniD.comあなたはログインして私にフィードバックを与えてください。

マイfb_login.js:

logInWithFacebook = function() { 
    if ("standalone" in navigator && navigator.standalone) { 
    $("a").click(function (event) { 
     event.preventDefault(); 
     window.location = $(this).attr("href"); 
    }); 
    } 

    FB.login(function(response) { 
    if (response.authResponse) { 
     window.location.replace('http://www.komunid.com/fb-callback.php'); 
    } else { 
     alert('User cancelled login or did not fully authorize.'); 
    } 
    }, 
    { 
    scope: 'public_profile,email,user_friends', 
    auth_type: 'rerequest', 
    }); 

    return false; 
}; 

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'my-app-id', 
     status  : true, 
     xfbml  : true, 
     cookie  : true, 
     version : 'v2.6' 
    }); 
    }; 

    (function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/fr_FR/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

マイfb_callback.php:

<?php 
session_start(); 

require __DIR__ . '/init.php'; 

$fb = new Facebook\Facebook([ 
    'app_id' => 'my-app-id', 
    'app_secret' => 'my-app-secret', 
    'default_graph_version' => 'v2.6', 
    'cookie' => true 
    ]); 

$helper = $fb->getJavaScriptHelper(); 

try { 
    $accessToken = $helper->getAccessToken(); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    // When Graph returns an error 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    // When validation fails or other local issues 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    var_dump($helper->getPersistentDataHandler()); 
    var_dump($_GET, $_SESSION); 
    exit; 
} 

if (!isset($accessToken)) { 
    if ($helper->getError()) { 
    header('HTTP/1.0 401 Unauthorized'); 
    echo "Error: " . $helper->getError() . "\n"; 
    echo "Error Code: " . $helper->getErrorCode() . "\n"; 
    echo "Error Reason: " . $helper->getErrorReason() . "\n"; 
    echo "Error Description: " . $helper->getErrorDescription() . "\n"; 
    } else { 
    header('HTTP/1.0 400 Bad Request'); 
    echo 'Bad request'; 
    } 
    exit; 
} 

答えて

0

それは私がSSLで私のウェブサイトを置く直前に正常に動作するために使用。

さてあなたはHTTPSに切り替えた場合は、この:

window.location.replace('http://www.komunid.com/fb-callback.php'); 

も同様にHTTPSのURLである必要があります。

+0

SSLなしで私と一緒に作業するまたはhttpsおかげCBroe、 私は、HTTPSの場所に変更しましたが、まだ私のラップトップ上で動作していません。 本当に奇妙なのは、私のMacBookではなく私のモバイルとデスクトップのiMacで動作しているということです(キャッシュをリセットしても)。 –

0

私は答えを発見しました。

https://komunid.comからログインしても動作しません。

はあなたがhttp://yourdomain.com/からhttp://yourdomain.comに自分のドメインをconfigコンなければならないhttps://www.komunid.com

Thxを

0

に動作します。

関連する問題