PHPを使用してFacebook SDKからサイトのデータベースにユーザー情報を取得する方法

StackOverflow https://stackoverflow.com//questions/25011369

質問

Facebook の Java スクリプト SDK を使用して、サイトで Facebook ログインを有効にしました。次に、Facebook からユーザーの基本情報を取得し、サイトの MySQL データベースに保存したいと思います。代替サインアップページはphpで実装されているため、これをphp経由で行う必要があります。他のより良い方法が可能であれば、ぜひ言及してください。

編集:応答オブジェクトを使用する必要があることはわかりましたが、オブジェクト要求はどこに配置すればよいでしょうか?そしてPHPの「ポスト」コードは?私は PHP については比較的初心者ですが、以下のコード行はどこに属しますか?

 FB.api('/me', function(response) {
console.log(JSON.stringify(response));

});

値の配列を返します。

{"id": "101540562372987329832845483"、 "email": "emple@example.com"、 "first_name": "bob"、[...]}

編集2:

FB.api は API を呼び出して、ユーザー情報を含む応答オブジェクトを受け取りますが、以下の正確な「code1」を使用する必要がありますか、それとも私が使い慣れている「code2」のように他の方法を使用できますか?

コード1:

FB.login(function(response) {
 if (response.authResponse) {
 console.log('Welcome!  Fetching your information.... ');
 FB.api('/me', function(response) { 
  var fbname=response.name;
  var fbid=response.id;
 $.ajax({
 type: "POST",
 url: page_for_storing_information,
 data: "name="+fbname+"&uid="+fbid,
     success: function(msg){ 
      }
     });
 console.log('Good to see you, ' + response.name + '.');
  });
   } else {
   console.log('User cancelled login or did not fully authorize.');
   }
});

コード2:

$name = mysqli_real_escape_string($con, $_POST['response.name']);
$email = mysqli_real_escape_string($con, $_POST['response.email']);
$id = mysqli_real_escape_string($con, $_POST['response.id']);


$sql="INSERT INTO questbook (name, email, id)
VALUES ('$name', '$email', '$comment', )";

if (!mysqli_query($con,$sql)) {
   die('Error: ' . mysqli_error($con));
 } 
役に立ちましたか?

解決

Facebook は、API に新しい PHP SDK 4 を使用することを推奨しています。PHP 5.4 以降が必要です。サーバーにそれがインストールされていることを確認してください。開始するためのリンクをいくつか示します。Facebook のドキュメントには、新しい PHP SDK について (まだ) あまり詳しく記載されていません。

使用するとよいのは「JavaScript ログイン ヘルパー」です。

編集:基本データは JavaScript 経由でリクエストするので、これには PHP SDK を使用する必要さえありません。したがって、必要なのは、AJAX を使用して、データベース ストレージ コードを含む php ファイルを呼び出すことだけです。

AJAX コードの例:

var ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function() {
    if(ajaxRequest.readyState === 4) {
        console.log(ajaxRequest.responseText);
    }
};
//send with POST
ajaxRequest.open('POST','yourscript.php',true);
ajaxRequest.setRequestHeader('Content-type','application/x-www-form-urlencoded'); //like a form
ajaxRequest.send('name=xxxx&fbid=xxxxx');

MySQL の使用方法を知っているかどうかはわかりませんが、Google で「PDO」を検索してください。PHP で MySQL を使用する推奨方法です。 http://php.net/manual/en/book.pdo.php

他のヒント

これを通過してください - https://developers.facebook.com/docs/reference/php/4.0.0ここにすべてが説明されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top