1

我正在尝试构建一个可以从我管理的组中检索这些数据的应用程序:

-> 成员姓名

-> 添加每个成员的管理员

我有 3 个单独的文件:

index.php:包含使用组权限的日志记录:

<?php
session_start();
require_once __DIR__ . '/autoload.php';
 $fb = new Facebook\Facebook([
  'app_id' => censored,
  'app_secret' => censored,
  'default_graph_version' => 'v2.4', // or use v2.5 latest version
  ]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['user_managed_groups']; 
$redirectUrl = 'http://localhost/test/fb/vendor/fbapp.php';
$loginUrl = $helper->getLoginUrl($redirectUrl, $permissions);
echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
?>

fbapp.php:检索 Facebook 访问令牌。

<?php
session_start();
require_once __DIR__ . '/autoload.php';
$fb = new Facebook\Facebook([
  'app_id' => censored,
  'app_secret' => "censored",
  'default_graph_version' => 'v2.4', // or use v2.5 latest version
  ]);
helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (isset($accessToken)) {
// Logged in!
$_SESSION['facebook_access_token'] = (string) $accessToken;
echo "Logged in \n";
 $redirectUrl = 'http://localhost/test/fb/vendor/traitement.php';
echo '<a href="' . $redirectUrl . '">nextStep</a>';
// Now you can redirect to another page and use the
// access token from $_SESSION['facebook_access_token']
}
?>

traitement.php:执行图形请求(出现问题的地方)

<?php
session_start();
require_once __DIR__ . '/autoload.php';
$fb = new Facebook\Facebook([
  'app_id' => censored,
  'app_secret' => "censored",
  'default_graph_version' => 'v2.4', // or use v2.5 latest version
  ]);
$accessToken = $_SESSION['facebook_access_token'];
$fb->setDefaultAccessToken($accessToken);
// Get user groups detail
$requestUserManagedGroups = $fb->request('GET', '/me/groups?fields=members,from');
//Make a batch request, this is not working, why ?
$batch = ['user-groups' => $requestUserLikes];// anyother request is not working (tried to change $requestUserLikes by other values..)
try {
$responses = $fb->sendBatchRequest($batch);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
foreach ($responses as $key => $response) {
if ($response->isError()) {
$e = $response->getThrownException();
echo '<p>Error! Facebook SDK Said: ' . $e->getMessage() . "\n\n";
echo '<p>Graph Said: ' . "\n\n";
var_dump($e->getResponse());
} else {
echo "<p>(" . $key . ") HTTP status code: " . $response->getHttpStatusCode() . "<br />\n";
echo "Response: " . $response->getBody() . "</p>\n\n";
echo "<hr />\n\n";
}
}
?>

我想出了这个错误消息:

Notice: Undefined variable: requestUserLikes in/home/yassine/srv/test/fb/vendor/traitement.php on line 20

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Argument for add() must be of type array or FacebookRequest.' in /home/yassine/srv/test/fb/vendor/facebook/php-sdk-v4/src/Facebook/FacebookBatchRequest.php:85 Stack trace: #0 /home/yassine/srv/test/fb/vendor/facebook/php-sdk-v4/src/Facebook/FacebookBatchRequest.php(78): Facebook\FacebookBatchRequest->add(NULL, 'user-groups') #1 /home/yassine/srv/test/fb/vendor/facebook/php-sdk-v4/src/Facebook/FacebookBatchRequest.php(61): Facebook\FacebookBatchRequest->add(Array) #2 /home/yassine/srv/test/fb/vendor/facebook/php-sdk-v4/src/Facebook/Facebook.php(492): Facebook\FacebookBatchRequest->__construct(Object(Facebook\FacebookApp), Array, Object(Facebook\Authentication\AccessToken), 'v2.4') #3 /home/yassine/srv/test/fb/vendor/traitement.php(23): Facebook\Facebook->sendBatchRequest(Array) #4 {main} thrown in /home/yassine/srv/test/fb/vendor/facebook/php-sdk-v4/src/Facebook/FacebookBatchRequest.php on line 85

编辑:我通过简单地注意到我需要通过 $requestUserManagedGroups 更改 $requestUserLikes 来修复此错误,!!

我想出了一个新问题,我无法看到我使用此请求管理的组:“me?fields=groups”

即使在https://developers.facebook.com/tools/explorer/中我也看不到一些好的结果,如果他们可以使用 facebook 资源管理器查看他们的群组,任何人都可以尝试一下吗?

4

0 回答 0