2017-07-25 1 views
-2

以前はFacebook経由でログインしてもうまくいきませんでした.Javascript SDKを使用してFacebook経由でログインすると、PHPコードネーターのWebサイトに実装されます。しかし、2017年7月の更新後、私はfacebook経由でウェブサイトにログインできません。Facebook経由でログインした後にアプリケーションが終了しました.2017年7月更新

以下は私のコードです。助けてください。

<script type="text/javascript" defer="defer"> 
      window.fbAsyncInit = function() { 
      FB.init({ 
      appId: "<?php echo $global['facebook_app_id']; ?>", // App ID 
      channelUrl: "<?php echo base_url(); ?>channel.html", // Channel File 
      status: true, // check login status 
      cookie: true, // enable cookies to allow the server to access the session 
      picture: "http://www.fbrell.com/f8.jpg", 
      xfbml: true // parse XFBML 
      }); 
      }; 
      // Load the SDK Asynchronously 
      (function (d) { 
      var js, id = "facebook-jssdk", ref = d.getElementsByTagName("script")[0]; 
      if (d.getElementById(id)) { 
      return; 
      } 
      js = d.createElement("script"); 
      js.id = id; 
      js.async = true; 
      js.src = "//connect.facebook.net/en_US/all.js"; 
      ref.parentNode.insertBefore(js, ref); 
      }(document)); 
     </script> 



       function loginMe(path) 
      { 
       var params1 = ''; 
       FB.login(function (response) { 
        if (response.authResponse) { 
         console.log('Welcome! Fetching your information.... '); 
         FB.api('/me', function (response) { 
          var params = "username=" + response.username + "&first_name=" + response.first_name + "&last_name=" + response.last_name + "&email=" + response.email + "&fb_id=" + response.id + "&gender=" + response.gender + "&birthday=" + response.birthday + "&action_type=fb_login"; 
          //var params="email="+response.email; 
          FB.api('/me/friends', function (response) { 
           //         alert(JSON.stringify(response)); 
           var i = 0; 
           $.each(response.data, function (key, val) { 
            i++; 
           }); 
           params1 = "&facebook_friend_count=" + i; 
          }); 
          if (typeof (response.email) === "undefined") { 
           alert('Sorry, there is technical problem to fetch data from facebook, please try again.'); 
           window.parent.location = path; 
          } 
          jQuery.ajax({ 
           type: 'post', 
           url: path + 'login-with-facebook', 
           data: params, 
           success: function (msg) { 
            if (msg != '' && msg != 'fail') { 
             window.location.href = path + "login-with-fb/" + msg; 
            } 
            else 
            { 
             if (msg == 'fail') 
              alert('Sorry, there is technical problem to fetch data from facebook, please try again.'); 
             window.parent.location = path; 
            } 
           } 
          }); 
         }); 

        } else { 
         //console.log('User cancelled login or did not fully authorize.'); 
        } 
       }, {"scope": "email,read_stream"}); 
      }    

私は、アラート取得しています私のログイン資格情報を入力した後たびに、「申し訳ありませんが、Facebookのからデータをフェッチするための技術的な問題があり、もう一度試してください。」 Facebookからユーザーの詳細を取得できません。

+0

'今read_streamのための代替は何 – WizKid

+0

をread_stream'という名前の権限はありませんか? –

+0

FacebookのAPIのバージョンはしばしば非推奨です。たとえば、[バージョン2.3は、2017年7月8日に廃止されました](https://developers.facebook.com/docs/apps/changelog)。最新の状態にしておくことを忘れないでください(恐らくライブラリを更新することを意味します)。 – Chris

答えて

0
+0

のduplicateが、read_streamをusers_postsに置き換えようとしましたが、何の効果もありませんでした。それでもユーザーの詳細を取得できません。 –

+0

使用しているAPIのバージョンはどれですか? –

+0

APIバージョン2.3 –

0

Version 2.3 of the Facebook API was deprecated on July 8, 2017を固定してもよいです。設定コードを更新して、それ以降のバージョンを使用し、すべてが動作することを確認してください。おそらくupgrade guideの変更を確認するべきです。ここで

the documentationからの設定例です:

window.fbAsyncInit = function() { 
    FB.init({ 
    appId   : 'your-app-id', 
    autoLogAppEvents : true, 
    xfbml   : true, 
    version   : 'v2.10' // <-- Right here 
    }); 
    FB.AppEvents.logPageView(); 
}; 
+0

アップグレードガイドに従って変更を試みました。まだ同じ問題が発生しています。 –

+0

答えに示したように 'version'の値を変更しましたか? – Chris

+0

質問を編集してコードを追加してください。それを選択してCtrl + Kを押すか、 '{}'ボタンをクリックすると適切にフォーマットできます。 – Chris

関連する問題