Запрос разрешений с Facebook PHP

#facebook #facebook-php-sdk

#Facebook #facebook-php-sdk

Вопрос:

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

 <?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:

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

Комментарии:

1. Спасибо за ответ, но позже я узнал, что это была не моя проблема. Это было потому, что я запрашиваю разрешения publish_actions, которые недоступны до тех пор, пока Timeline / Open graph не выйдет из бета-версии. Если я попробую другие разрешения, мне будет предложено ОК