0

そこで、Facebook ログイン統合に関するチュートリアルを次の場所で見つけました。http://www.excellencemagentoblog.com/facebook-login-integration-website

私はそれを段階的にたどりました.Google Chromes Developer Toolsは、クリック後に次のようなエラーを表示しますFacebook Login:

Uncaught TypeError: object is not a function index.php:53 onclick

ボタンの html は次のようになります。

<a class="btn btn-success" href='#' onclick='login();'>
      <i class="icon-facebook"></i>
      Facebook Login
</a>

スクリプトは次のとおりです。スクリプト内で関数が定義されているため、何が問題なのかわかりません。

<script type="text/javascript">

    window.fbAsyncInit = function() {
       FB.init({
         appId      : ' 163289720517425', // App ID
         channelURL : '', // Channel File, not required so leave empty
         status     : true, // check login status
         cookie     : true, // enable cookies to allow the server to access the session
         oauth      : true, // enable OAuth 2.0
         xfbml      : false  // parse XFBML
       });
    };
    // logs the user in the application and facebook
    function login(){
    FB.getLoginStatus(function(r){
         if(r.status === 'connected'){
                window.location.href = 'php/fbconnect.php';
         }else{
            FB.login(function(response) {
                    if(response.authResponse) {
                  //if (response.perms)
                        window.location.href = 'php/fbconnect.php';
                } else {
                  // user is not logged in
                }
         },{scope:'email'}); // which data to access from user profile
     }
    });
    }
    // Load the SDK Asynchronously
    (function() {
       var e = document.createElement('script'); e.async = true;
       e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';                
       document.getElementById('fb-root').appendChild(e);
    }());
</script>
4

1 に答える 1

0

あなたがここで抱えている問題がよくわかりません....警告付きの機能だけに煮詰めたとしても....それでも機能しませんでした???? つまり、フェイスブックとは何の関係もありません。

とにかく....これは私がそれを行う方法です....

クロスドメインリクエストを行っているので、ドメインを登録する必要があります....

また....FBはjavascript SDKを提供するので、試していたようにPHPとJavascriptの両方を使用する必要はありません...

window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
  appId      : '163289720517425',                        // App ID from the app dashboard
  channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel file for x-domain comms!!
  cookie     : true, // enable cookies to allow the server to access the session
  oauth      : true, // enable OAuth 2.0
  status     : true,                                 // Check Facebook Login status
  xfbml      : true                                  // Look for social plugins on the page
});

// Additional initialization code such as adding Event Listeners goes here

$('.btn-success').click(login);

};

// Load the SDK asynchronously
 (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/en_US/all.js";
 fjs.parentNode.insertBefore(js, fjs);
 }(document, 'script', 'facebook-jssdk'));

 function login(){
 FB.login(function(response) {
 if (response.authResponse) {
 console.log('Welcome!  Fetching your information.... ');
 FB.api('/me', function(response) {
   console.log('Good to see you, ' + response.name + '.');
  });
 } else {
  console.log('User cancelled login or did not fully authorize.');
 }
 });}
于 2013-06-26T20:58:24.223 に答える