1

javascript sdkを使用してサーバー側アプリにFacebookをログインさせる方法を説明する完全な例またはブログをstackoverflowで検索しましたが、何も見つかりませんでした。

私は developer.facebook.com サイトを検索しましたが、私が得た唯一のものは php の例https://developers.facebook.com/docs/howtos/login/server-side-login/でした。問題は、JavaScript を使用する必要があることです。

なぜ私はそれをしたいのですか?その理由は、ファイルをサーバー (google-app-engine(Java Sdk)) にアップロードし、Facebook ユーザー ID を使用してデータベースに保存し、ユーザー ID で取得したいからです。

別の質問は、彼が動的にアップロードした場合、どのように私の JavaScript コードをデバッグできますか?コードアシストはどうですか?

4

2 に答える 2

1

さて、私はこの問題であなたを助けることができます. FB の JS SDK を使用する必要がある場合、Facebook はサーバー側で Java をサポートしていないため、クライアント側またはブラウザーですべてを行う必要があります。

したがって、クライアントでユーザーを認証し、ユーザー プロファイルにアクセスするためのスコープを定義することをお勧めします。ユーザーによって認証されると、ajax を使用して AppEngine バックエンドに送信できる JSON オブジェクトとして応答を取得します。

FB ログインを使用し、アルバムやビデオの写真とともにユーザーのプロフィール情報にアクセスするリンクを共有しています。

http://demositeunicfyp.appspot.com/fb-pictures.html

http://demositeunicfyp.appspot.com/facebook.html

ブラウザーで JS コードをデバッグして、Facebook API から返される応答オブジェクトの種類を確認できます。

$(document).ready(function() {
        // Initializing the Facebook SDK
        FB.init({
            appId : 'XXXXXXXXXXXXXXXX',
            status : true,
            cookie : true,
            xfbml : true,
            oauth : true
        });

        // Method to check if a user is looged in to FB or Not
        FB.getLoginStatus(updateButton);

        $("#logout").live("click", function(event) {
            event.preventDefault();
            // FB.getLoginStatus(updateButton);
            FB.logout(function(response) {
                $("#loginDiv").show();
                $("#logoutDiv").hide();
            });
        });


        $("#fbLoginButton").live("click", function(event) {
            //event.preventDefault();
            FB.getLoginStatus(updateButton);
        });

        function updateButton(response) {
            var button = document.getElementById("fbLoginButton");

            if (response.authResponse) {
                // user is already logged in and connected
                // button.innerHTML = 'Facebook Logout';
                //$("#loginDiv").hide();
                //$("#logoutDiv").show();
                //window.location = '/confirm';

                FB.api('/me', function(response) {
                    $("#userName").text(response.name);
                    $("#userEmail").text(response.email);
                });

            } else {
                // user is not connected to your app or logged out
                // button.innerHTML = 'Facebook Login';

                button.onclick = function() {
                    FB.login(function(response) {
                        if (response.authResponse) {
                            // button.innerHTML = 'Facebook Logout';
                            $("#loginDiv").hide();
                            $("#logoutDiv").show();

                            FB.api('/me', function(response) {
                                $("#userName").text(response.name);
                                $("#userEmail").text(response.email);
                            });
                        } else {
                            //user cancelled login or did not grant authorization hence do nothing
                        }
                    }, {
                        scope : 'email,publish_actions'
                    });
                }
            }
        }
   });
于 2012-12-30T18:05:30.947 に答える
0

SDKダウンロードでJS.phpから取得

  <?php

require '../folderTo/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '',
  'secret' => '',
));

// See if there is a user from a cookie
$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
  $user_profile = $facebook->api('me?fields=photos');  } catch (FacebookApiException $e) {
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
    $user = null;
  }
}

?>
<!DOCTYPE html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <body>
    <?php if ($user) { ?>
      Your user profile is
      <pre>
        <?php print htmlspecialchars(print_r($user_profile, true)) ?>
      </pre>
    <?php } else { ?>
      <fb:login-button></fb:login-button>
    <?php } ?>
    <div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId: '<?php echo $facebook->getAppID() ?>',
          cookie: true,
          xfbml: true,
          oauth: true
        });
        FB.Event.subscribe('auth.login', function(response) {
          window.location.reload();
        });
        FB.Event.subscribe('auth.logout', function(response) {
          window.location.reload();
        });
      };
      (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>
  </body>
</html>

ここでの実例: http ://slicethegreen.com/examples/js.php

于 2012-12-30T10:15:49.727 に答える