我正在尝试配置 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 使用 Facebook SDK,所以我试图从整个方程式中消除 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。我也尝试过使用测试用户 - 无济于事。我可能在这里遗漏了一些服务器配置问题吗?