0

Facebook認証に問題があります。ログに記録されている場合でも、関数getUser()は 0 を返します

これが私のコードです:

$fb_params = array(
'appId'     => APP_ID,
'secret'    => SECRET_ID
);  
$fb = new Facebook($fb_params);

echo $fb->getUser(); // UID

誰かがアイデアを持っていますか?

PS : 「 にアクセスできなく$fb->api('/me')なりました。 が必要であると表示access_tokenされています。認証の問題に関連していると思われます...」

ありがとう

4

1 に答える 1

1

現在、ユーザーとして認証していません。アプリケーションとしてのみ認証しています。その結果、Facebook API は /me ページを表示したり、getUser() 呼び出しに応答したりできません。これは、API に代わってアクセスしようとしているユーザーがわからないためです (つまり、「/me は誰ですか?」 ?」)。また、公開されている情報にのみアクセスできます。

Oauth2 を介してアプリケーションを認証するユーザーを取得し、返された access_token を保存してから、それを今後の呼び出しに含める必要があります (例: WIRQjCey1.3600.1309525200.0-509450630|eD6SAR">https://graph.facebook. com/me?access_token=2227470867|2.AQB-_ WIRQjCey1 .3600.1309525200.0-509450630|eD6SAR...)。

PHP SDKを使用してこれを行うには、次のことができます

$loginUrl = $fb->getLoginUrl();
echo "<a href='$loginUrl'>Login with Facebook</a>";

そのリンクをクリックしてユーザーを認証させると、access_token が $_SESSION に保存され、更新を押すと "new Facebook( $fb_params );" が更新されます。コンストラクターは $_SESSION からアクセス トークンを選択し、それを今後のすべての呼び出しに使用するため、$fb->getUser(); のように呼び出します。正しく戻ります。

SDK のサンプル フォルダー ( https://github.com/facebook/php-sdk ) に機能する例があり ます。これを使用して、アプリケーション (パブリック データ アクセスのみ) として認証され、次にユーザーとして認証されている間に呼び出しを試行できます。

于 2011-07-01T11:19:13.123 に答える