2

Facebook API を使用しており、接続しているユーザーの Facebook 情報を取得したいと考えています。javascript で情報を取得できますが、データベースに格納されている PHP を埋めるための情報を取得したいと考えています。

これがjavascript関数の私のコードです:

    <html>
    <head>
        <title>My Application</title>
        <style type="text/css">
            div { padding: 10px; }
        </style>
        <meta charset="UTF-8">
    </head>
    <body>
        <div id="fb-root"></div>
        <script type="text/javascript">
          var fbAppId = 'myAppId';
          var objectToLike = 'http://techcrunch.com/2013/02/06/facebook-launches-developers-live-video-channel-to-keep-its-developer-ecosystem-up-to-date/';

          if (fbAppId === 'replace me') {
            alert('Please set the fbAppId in the sample.');
          }

          window.fbAsyncInit = function() {
            FB.init({
              appId      : fbAppId,        // App ID
              status     : true,           // check login status
              cookie     : true,           // enable cookies to allow the server to access the session
              xfbml      : true            // parse page for xfbml or html5 social plugins like login button below
            });

            FB.login(function(response) {
               if (response.authResponse) {
                 FB.api('/me', function(response) {
                   window.alert(response.last_name + ', ' + response.first_name + ", " + response.email);
                 });
               }
             });
          };

          (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'));

        </script>
</body>
</html>

これが私のPHPコードです。動作させることはできません

<?php
require_once("php-sdk/facebook.php");

$config = array();
$config['appId'] = 'myAppId';
$config['secret'] = 'myCodeSecret';
$config['fileUpload'] = false; // optional

$facebook = new Facebook($config);

$user = $facebook->getUser();

$user_profile = $facebook->api('/me','GET');
echo "Name: " . $user_profile['name'];
?>

変数を表示する$userと、ユーザー ID が取得されます。しかし、それ以外の情報は得られません。

もっと詳しく調べたところ、これは Facebook のアプリケーションの構成に問題がある可能性があります。Facebook でアプリケーションを作成する手順を説明していただけますか?

4

4 に答える 4

1

試す

$user_profile = $facebook->api('/me');
print_r($user_profile)
于 2013-05-16T19:53:39.667 に答える
0

現在、古いスレッドで回答していますが、同じ問題が発生していました。アクセストークンを使用して $params 配列を作成するためにこれを解決しました。

ですから、やるべきことはこのようなものです。

    $config = array();
$config['appId'] = $appid;
$config['secret'] = $appSecret;
$config['fileUpload'] = false; // optional
$fb = new Facebook($config);

$params = array("access_token" => "acces_token_given_by_facebook");
$object = $fb->api('/me', 'GET', $params);

print_r($object);

get リクエストに $params を追加すると機能します。アクセス トークンを送信するまで、Facebook は何もしません。また、これは私の問題を解決しました。

于 2014-08-27T15:08:00.853 に答える
0

これは、ユーザーデータを取得する簡単なスクリプトです

<?php     
try {
    // Get UID of the user
    $uid = $this->fb->getUser();

    // Get basic info about the user
    $me = $this->fb->api('/me');

    // Get the user's facebook stream
    $feed = $this->fb->api('/me/home');

    // Obtain user's and his/her friend's basic information via FQL Multiquery
    $streamQuery = <<<STREAMQUERY
{
"basicinfo": "SELECT uid,name,pic_square FROM user WHERE uid=me()",
"friendsinfo" : "SELECT uid, name, pic_square FROM user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"
}
STREAMQUERY;
    $streamParams = array(
                          'method' => 'fql.multiquery',
                          'queries' => $streamQuery
                   );
    $streamResult = $this->fb->api($streamParams);

    //Obtain user likes, interests, movies, music, books
    $likes = $this->fb->api('/me/likes');
    $interests = $this->fb->api('/me/interests');
    $movies = $this->fb->api('/me/movies');
    $music = $this->fb->api('/me/music');
    $books = $this->fb->api('/me/books');
}catch(FacebookApiException $e) {
    error_log($e);
    //Session expired or user de-authenticated the app
    $this->showConnectToFB(true);
}

?>
于 2013-05-16T07:29:58.380 に答える