Перенаправление пользователей на страницу входа в Facebook без запроса разрешений

#facebook #permissions #oauth #facebook-fbml

#Facebook #разрешения #oauth #facebook-fbml

Вопрос:

Я пытаюсь перенаправить пользователей на страницу входа в Facebook, а затем обратно в мое приложение без отображения страницы входа в приложение. Возможно ли это?

Я изучил параметр «next», который автоматически генерируется PHP-SDK, но, похоже, не может его изменить.

Есть ли способ сделать то, что я ищу? Я хочу убедиться, что пользователи вошли в систему, чтобы проверить, авторизовали ли они мое приложение, но не хотят, чтобы они этого делали, если они еще этого не сделали.

Спасибо за любую помощь!

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

1. можете ли вы показать здесь код SDK, в котором вы видите генерируемый параметр «next»?

2. $facebook-> getLoginURL($ params)

3. Для следующего параметра установлено значение «https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id%… » который, похоже, может быть перезаписан.

4. Хорошо, я проверил все возможности, я думаю. И вы не можете делать то, что пытаетесь сделать, проверьте мой ответ. надеюсь, это поможет 🙂

Ответ №1:

Нет, я не думаю, что можно изменить следующий параметр. Единственное место, где я видел следующий параметр (в PHP SDK), находится в getLogoutUrl() функции, как видно из источника base_facebook.php . И этот параметр определяет, какой URL-адрес перейти после выхода из системы.

Для getLoginUrl() в base_facebook.php файл, у нас есть

  return $this->getUrl(
  'www',
  'dialog/oauth',
  array_merge(array(
                'client_id' => $this->getAppId(),
                'redirect_uri' => $currentUrl, // possibly overwritten
                'state' => $this->state),
              $params));
  

в качестве последней строки в функции, что, очевидно, означает, что диалоговое окно oauth будет отображаться, что бы вы ни пытались.

Если вашего приложения нет на Facebook, вы можете перейти <fb:login-button>Login with Facebook</fb:login-button> на Javascript, а затем следовать примеру с этого URL. Вы увидите, что полностью удалить это диалоговое окно невозможно, даже если вы не запрашиваете никаких разрешений.

Метод FB.login() Javascript SDK также вызовет диалоговое окно авторизации.
Надеюсь, это поможет.

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

1. Спасибо, что изучили это. Я собираюсь оставить вопрос открытым еще на пару дней и посмотреть, есть ли у кого-нибудь еще обходной путь или что-то в этом роде.

2. Привет, рад, что я смог как-то помочь, если вы придумаете свой собственный хак, опубликуйте его здесь.

Ответ №2:

Они должны принимать разрешения только в первый раз. Facebook никогда не позволит вам получать данные пользователя без их ведома / принять

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

1. Я не хочу получать КАКИЕ-либо данные от пользователя, разрешаю им только перенаправление на URL-адреса моего приложения.

2. @Derek: вы получаете основные данные, предлагая им войти в систему

3. Но… Мне не нужны базовые данные. Похоже, это можно сделать, указав параметр «next», но я не могу понять, как это сделать, используя функцию PHP-SDKs $facebook-> getLoginURL($ params).

4. @Derek: вы не можете войти в систему, если пользователь не разрешит вам получить свои основные данные. Они являются базовыми и всегда предоставляются автоматически

5. вам нужен их идентификатор Facebook для входа на ваш сайт. Идентификатор Facebook является частью базовых данных. Вам это нужно 🙂

Ответ №3:

Если вы используете php :

 // Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => $fbconfig['appid'],
  'secret' => $fbconfig['secret'],
  'cookie' => true
));

//Facebook Authentication part
$user = $facebook->getUser();

if (!$user) {
    // user is not logged on --> redirect to the login url
} else {
    // user is logged on you can do what you want
}
  

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

1. Это проверит, разрешено ли моему приложению зарегистрированным пользователем Facebook. Это не то, что я ищу. Я пытаюсь перейти на страницу входа в систему после создания URL-адреса входа в Facebook ($ facebook-> getLoginUrl ($ params)), не требуя от пользователя авторизации моего приложения после перенаправления. Я вижу, что следующий параметр установлен, но, похоже, не может его изменить или удалить.