私はHybridAuthを構成しようとしていますが、非常に初期の段階です。今私がやりたいのは、接続して、HAがFacebookにリダイレクトし、アプリのインストールを求めるプロンプトを表示することを確認し、ユーザーが戻ってきたときにユーザーを認証することだけです。
私は手動で以下を呼び出しています:http: //mydomain.com/auth.php?provider = Facebook
auth.phpは次のようになります。
session_start();
require_once($_SERVER['DOCUMENT_ROOT'] . "/func/db_connect.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/api/auth/Hybrid/Auth.php"); // HybridAuth Module
$hybridauth_config = include($_SERVER['DOCUMENT_ROOT'] . '/api/auth/config.php');
if ($_GET['provider'] == '' || !in_array($_GET['provider'], array_keys($hybridauth_config['providers']))) {
echo 'Invalid Provider';
} else {
try {
$hybridauth = new Hybrid_Auth($hybridauth_config);
// try to authenticate with this provider
$adapter = $hybridauth->authenticate($_GET['provider']);
// grab user profile
if ($hybridauth->isConnectedWith($f_provider)) {
// yep, we're connected. Add this provider's info to the user_auth table
echo 'connection successful';
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
Facebookに転送し、適切な権限で正しいアプリをインストールするように求めるという点で機能します。これは、HA構成が正常に機能していることを示しています。アプリを正常にインストールすると、ページにリダイレクトされ、次のメッセージが表示されます。
Authentification failed! Facebook returned an invalide user id.
何が得られますか?私のアプリでは、FBコントロールパネルにも0個の追加と0個のAPI呼び出しが表示されます(ただし、このデータは数日遅れる可能性があります)。FBが何らかの方法でアプリを有効にするのを待っていますか?私は何か間違ったことをしていますか?
アップデート
HybridAuthはFacebookSDKを使用しているので、方程式全体からHAを排除しようとしました。次の基本的な例を実行します。
session_start();
require($_SERVER['DOCUMENT_ROOT'] . "/path/to/fbsdk/facebook.php");
$facebook = new Facebook(array(
'appId' => 'myappid',
'secret' => 'myappsecret',
'fileUpload' => true
));
$user = $facebook->getUser();
var_dump($user);
Facebookにログインし、アプリケーションを追加しましたが、何をしてもユーザーIDは0を返します。テストユーザーも使用してみましたが、役に立ちませんでした。ここで見逃している可能性のあるサーバー構成の問題はありますか?