Запрашивать разрешения с помощью Facebook PHP - PullRequest
0 голосов
/ 06 ноября 2011

У меня есть ситуация, когда пользователь мог аутентифицировать мое приложение для базового доступа, но на некоторых страницах я хочу воспользоваться новым API Open Graph и иметь возможность публиковать действия на своей стене. Поэтому я пытаюсь проверить, дали ли они моему веб-сайту это разрешение, и если они не дали им возможность добавить это разрешение. Вот мой код:

<?php
require 'fbphp/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => '??????',
  'secret' => '???????',
));

$permissions = $facebook->api("/me/permissions");
if( array_key_exists('publish_actions', $permissions['data'][0]) ) {
    // Permission is granted!
    echo "we have permission";
} else {
    // We don't have the permission
    echo "no perms";
     $login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_actions' ) );
      echo 'Please <a href="' . $login_url . '">login.</a>';
}

?>

Что этот код делает в данный момент, когда я нажимаю на ссылку входа в систему, он перенаправляет прямо на ту же страницу, не запрашивая разрешения (возможно, потому что я уже технически вошел в систему?). Конечно, у меня до сих пор нет разрешения, поэтому я вернулся на круги своя.

Так, как я могу запросить разрешения для того, кто уже вошел в систему? Я использую тестовых пользователей, созданных в ролях приложения, если это имеет какое-либо отношение

1 Ответ

0 голосов
/ 07 ноября 2011

У меня тоже была эта проблема. Но в моем случае, прежде чем публиковать сайт, я проверяю все, как вы делаете, поэтому попробуйте это. Зайдите в тестовую учетную запись пользователя на Facebook. Затем перейдите в «Настройки учетной записи», а затем «Настройки приложения» (которая находится на левой панели). Удалите свой сайт или приложение оттуда, так что вы будете удалять его разрешения. Затем попробуйте снова получить доступ к своему приложению, теперь оно запросит новые разрешения.

...