Есть ли способ проверить, предоставил ли пользователь данное разрешение на стороне сервера? - PullRequest
0 голосов
/ 15 августа 2011

Мне нужно проверить, предоставил ли пользователь данное разрешение (например, publish_stream) на стороне сервера. Это похоже на решение на стороне клиента, но мне нужно на стороне сервера.

Есть идеи, пожалуйста?

Ответы [ 3 ]

1 голос
/ 15 августа 2011

Вы можете сделать вызов API Graph по этому URL https://graph.facebook.com/me/permissions, включая маркер доступа пользователя.Вы получите результаты с разрешениями пользователя.Подробнее см. https://developers.facebook.com/docs/reference/api/user/

1 голос
/ 15 августа 2011

Вам необходим серверный API, такой как Facebook Java API или restFB .Это API Java (которые я использовал), есть множество других для разных языков.Официальные из них показаны на портале разработчиков Facebook .

. Используя эти API, вы сможете сделать больше, чем просто аутентифицировать пользователя на стороне сервера.Перейдите по ссылке на разные страницы, и вы найдете отрывки, которые помогут вам быстро начать работу!

РЕДАКТИРОВАТЬ

Поскольку вы используете ASP, вам понадобится ASP .NET API.Это первый результат, найденный в поиске Google http://facebooksdk.codeplex.com/.

Используя этот API и архитектуру MVC, вы можете аннотировать любые действия контроллера, содержащие код, для которого требуются разрешения, что-то вроде [CanvasAuthorize(Perms = "publish_stream")] и когда пользователь вызывает это действие, ему необходимо предоставить разрешение.

Я не могу дать более подробную информацию, поскольку я никогда не использовал этот API, но все же ознакомьтесь с этим углубленным руководством по созданиюпример приложения .

0 голосов
/ 16 августа 2011

Решение:

Шаг 1. Сначала вы должны сделать запрос: запрос похож на: SELECT {0} FROM permissions WHERE uid = {1}

{0} - разделенные запятыми разрешения.например: publish_stream,offline_access

{1} is userId

Шаг 2. Затем отправьте этот запрос по указанному URL:

url: https://api.facebook.com/method/fql.query?query={0}&format=JSON&access_token={1}

{0} - это запрос, который мы сделали на шаге 1

{1} - это AccessToken пользователя

Пример результата: [{"publish_stream":1,"offline_access":0}]

Обновление Другойспособ использования Graph Api:

https://graph.facebook.com/me/permissions?access_token={0}

{0} - это пользовательский AccessToken

Пример результата:

{

"данные ": [

  {
     "installed": 1,
     "status_update": 1,
     "photo_upload": 1,
     "video_upload": 1,
     "offline_access": 1,
     "create_note": 1,
     "share_item": 1,
     "bookmarked": 1,
     "publish_stream": 1
  }

]}

...