Приложения Facebook: дополнительные разрешения - PullRequest
21 голосов
/ 08 февраля 2011

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

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

Как запросить дополнительное разрешение после того, как пользователь получилуже авторизовал приложение?

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

Ответы [ 2 ]

19 голосов
/ 08 февраля 2011

Это так же просто, как добавление нового разрешения к новому fb:login-button:

<fb:login-button scope="publish_stream">
  Let me write on your wall!
</fb:login-button>

Так, например, у вас есть скрытое выше в DIV, и если пользователь поставит галочку, вы увидите DIV иподскажите новое разрешение!

Хороший живой пример этого можно получить на Консоли тестирования Facebook :

  1. Нажмите «Войти», чтобы «добавить» приложение
  2. Затем нажмите examples
  3. Под fb.api, выберите does-like

Теперь вы можете видеть, что даже после * подключения к приложению (приложение для тестирования консоли)), вы можете на самом деле есть еще одна кнопка входа в систему, чтобы предложить пользователю!

РЕДАКТИРОВАТЬ:
Чтобы проверить, предоставил ли пользователь ваше приложение разрешение, просто используйте этот FQL:

SELECT read_stream,offline_access FROM permissions WHERE uid=me()

Это будет возвращать что-то вроде:

[
  {
    "read_stream": 1,
    "offline_access": 0
  }
]

Чтобы проверить это, просто используйте тестовую консоль, опубликованную ранее.

РЕДАКТИРОВАТЬ 2:
Чтобы создать ссылку самостоятельно без XFBML или Javascript, вам просто нужно добавить параметр scope с дополнительными значениями perms ( reference ):

https://www.facebook.com/dialog/oauth?
     client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=publish_stream

Или, если вы используете PHP-SDK :

$loginUrl = $facebook->getLoginUrl(array(
    "scope" => "publish_stream"
));
0 голосов
/ 08 февраля 2011

Я смотрел на это на днях!Если вы прочитали http://developers.facebook.com/docs/authentication,, есть несколько разных способов отображения небольшого всплывающего окна для запроса дополнительных разрешений.

Я не уверен, как это работает с приложением Facebook, но я знаю, чтовеб-сайт, использующий Facebook Connect, если вы попытаетесь запросить разрешения, которые пользователь уже принял, то страница автоматически перенаправится обратно на заданный вами redirect_url.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...