1

GraphAPIとPHPSDKfor Facebookを使用して現在のユーザー名を返そうとしていますが、運が良ければ自分の名前が表示されます。これは非常に簡単で、Graph APIを知っている人は、使用しているコードを見るだけで問題なくサポートしてくれるはずです。

require 'facebook.php';

$appid=get_post_meta($thisID,'_EFBPDAppID',true);
$appsec=get_post_meta($thisID,'_EFBPDAppSec',true);
$facebook = new Facebook(array(
  'appId'  => $appid,
  'secret' => $appsec,
  'cookie' => true
));
$user = $facebook->getUser();
if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

そして、これを使用しecho $user_profile['name'];てユーザー名を表示しますが、これは私の名前のみを表示しています。他のプロファイルでは、その変数が空白の場所を示しているだけです。私のプロフィールでは、私の名前が表示されています。私も使用print_r($user);し、IDが表示されていますが、他のプロファイルの場合は表示されます0

ユーザーは自分自身を認証する必要がありますか、それともこの情報を使用したセッションがすでに存在する必要がありますか?セッション情報がある場合、どうすれば取得できますか?

私を助けることができる人は誰でも非常にありがたいです。ありがとう。

4

3 に答える 3

4

セキュリティとプライバシーのためにも、Facebookユーザーはログインして、現在のアプリケーションが自分のアカウント情報にアクセスできるようにする必要があります。これは、別のSDKを使用して実現できます。ほとんどの人はJavascriptを使用していますが、私は個人的にPHPを好みます。HTMLでの簡単な実装を以下に示します。

<a href="<?php echo $this->facebook->getLoginUrl(array('next' => "http://www.yourdomain.com/facebooklogin_success", 'req_perms' => 'email,read_stream,publish_stream,offline_access'))?>">Login to Facebook</a>

次のようなものが生成されます。

<a href="https://www.facebook.com/login.php?api_key=1234567890&cancel_url=http%3A%2F%2Fyourdomain.com/facebooklogin_cancel.php%2F&display=page&fbconnect=1&next=http%3A%2F%2Fyourdomain.com/facebooklogin_success.php&return_session=1&session_version=3&v=1.0&req_perms=email%2Cread_stream%2Cpublish_stream%2Coffline_access">Login to Facebook</a>

そのプロセスの後、GraphAPIを使用してユーザーの情報にアクセスできるはずです。

$fbuser = $facebook->api('/me');
echo "Hello ".$fbuser['name'];

うまくいくかどうか教えてください。

于 2011-06-03T02:33:36.530 に答える
2

http://www.9lessons.info/2011/02/login-with-facebook-and-twitter.html

ユーザーは、作成するアプリケーションを認証する必要があります。

その後、Facebookはaccess_tokenでリダイレクトします(そしてプロセスはコールバックと呼ばれます)。

access_tokenとユーザーIDを保存して、Facebookにログインせずにデータにアクセスしたりメッセージを投稿したりできるようにします。

于 2011-06-03T07:46:33.323 に答える
0

私はあなたの問題の修正を持っています。シンプルなFacebookアプリケーションを使用しています。動作しますが、開発中です。

最初にユーザーを認証し、ユーザーIDを取得する必要があります。その後、「me」をuser_idに置き換えるだけで、完了です。

<?php
    require_once 'facebook-php-sdk/src/facebook.php';
    $facebook = new Facebook(array(
        'appId' => '[your app id]',
        'secret' => '[your app secreat]',
        'cookie' => true,
    ));

    // Then authorize the current user in the way you desire 
    // get his user_id
    $user_profile = $facebook->api('/[the user's user id]');

    echo $user_profile['name'];
?> 
于 2011-06-27T03:47:56.903 に答える