2012-03-10 2 views
1

Я работаю над интеграцией поддержки Facebook в механизм ведения блога. Я зарегистрировал приложение на странице разработчиков Facebook.
Я хотел бы реализовать четыре различных вида случаев использования:Facebook API: Как я могу обрабатывать разные разрешения для разных пользователей в одном приложении?

  • Посетители на сайте могут войти через Facebook.
    Меня не интересуют какие-либо их личные данные, и я не хочу, чтобы мой сайт обращался к любому из них, поэтому мне не нравится запрашивать у них какие-либо специальные разрешения.
  • Владельцы сайта могут отображать их статус Facebook.
    Я хочу, чтобы механизм ведения блога мог получать последние обновления статуса владельцев сайтов из Facebook и отображать последние несколько из них.
  • Публикация нового обновления статуса при публикации новой статьи на сайте.
    Сайт должен быть в состоянии опубликовать обновление статуса на учетную запись владельца владельца, когда он/она публикует новую статью на сайте.
  • Галерея
    Галерея сайта должна быть способна отображать фотографии с учетных записей владельцев.

Для первого варианта использования я не требую никаких разрешений. Для других необходимы некоторые разрешения. Как я могу запрашивать разные разрешения для разных пользователей для моего приложения?

ответ

1

API Facebook позволяет разрешать пользователям постепенно увеличиваться с течением времени. Фактически, это руководство Facebook для получения разрешений от пользователя - получите разрешения столько, сколько вы хотите, чтобы текущая операция была завершена.

Вы можете войти в систему с вашей системой с уровнем разрешений по умолчанию '', а затем увеличить при необходимости. В API FB ничего нет, что заставляет всех пользователей вашего приложения иметь один и тот же набор разрешений.

Код для этого будет выглядеть так:

FB.login(function(response) { 
    // handle the response 
}); 

Вы можете задать API для текущих прав доступа пользователя, запрашивая «/ Me/разрешения» API конечной точки и передавая текущий маркер доступа, предоставленный вашим приложением ,

На стороне сервера, звоните:

https://graph.facebook.com/me/permissions?access_token=XXX 

// Sample JSON response: 

{ 
    "data": [ 
    { 
     "installed": 1, 
     "status_update": 1, 
     "photo_upload": 1, 
     "video_upload": 1, 
     "offline_access": 1, 
     "email": 1, 
     "create_note": 1, 
     "share_item": 1, 
     "publish_stream": 1, 
     "user_location": 1, 
     "user_interests": 1, 
     "user_online_presence": 1, 
     "user_website": 1, 
     "user_photos": 1, 
     "user_videos": 1, 
     "user_photo_video_tags": 1, 
     "user_checkins": 1 
    } 
    ] 
} 

// or use the following JS snippet: 
FB.api('/me/permissions', function(response) { 
    // handle the response 
}); 

Если вы хотите получить больше разрешений, просто провести операцию FB.login (если сделано через JS SDk) или соответствующую операцию в методе осуществления выбора.

Второй FB.login хотел следующее:

FB.login(function(response) { 
    // handle the response 
}, {scope: 'email,user_likes'}); 
+0

Не могли бы вы рассказать немного больше? (Я использую DotNetOpenAuth.) – Venemo

+0

Venemo: Я не знаю о DotNetOpenAuth, но я добавил пример кода JS SDK и серверный API-интерфейс Graph API и ответ образца. Это должно быть достаточно хорошо, чтобы вы начали. Специфика того, как это сделать с помощью DotNetOpenAuth, - это то, что вам нужно будет понять из документации или надеяться на конкретный ответ от того, кто знает эту библиотеку. – Shreeni

+0

Эй, спасибо! Мне нужен серверный вызов. Я дам вам знать, как это работает. :) – Venemo

0

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

+0

я не нашел вариант на Dev странице Facebook, которая позволила бы мне сделать это. Не могли бы вы рассказать мне, как это сделать? – Venemo

Смежные вопросы