Я пытаюсь создать доступ на стороне сервера к пользовательским ресурсам Facebook (фотографии/альбомы/и т. д.). Я хочу, чтобы пользователь прошел аутентификацию один раз с помощью своего родного мобильного приложения и чтобы сервер мог получить доступ к данным пользователя без взаимодействия с пользователем.
Я пытаюсь понять шаги, которые мне нужно предпринять, чтобы заставить его работать.
Я читал Facebook: Вход для серверных приложений но я не могу понять, как использовать предложенный там сценарий - потому что мой сервер не имеет ничего общего с взаимодействием с пользователем (я не могу перенаправить пользователя в какой-либо диалог входа) - сервер выполняет свой собственный работа в фоновом режиме независимо от того, использует ли пользователь свое мобильное приложение или нет. Что мне делать, например, по истечении срока действия токена?
Более того, я хочу, чтобы пользователь мог напрямую работать с Facebook на своем мобильном телефоне, без вмешательства сервера.
Как я вижу, это поток, который я ожидал бы:
- Пользователь запускает родное мобильное приложение.
- Пользователь проходит аутентификацию с помощью SDK Facebook в родном мобильном приложении.
- Пользователь получил специальный токен, который на стороне сервера можно преобразовать в токен доступа.
- Токен будет отправлен на сервер и сохранен там.
- Если серверу необходимо получить доступ к данным пользователя Facebook, он использует этот специальный токен и преобразует его в токен доступа.
- По истечении срока действия токена сервер может продлить его, используя специальный токен, без какого-либо взаимодействия с пользователем.
Какие данные должны быть отправлены на сервер из мобильного приложения после аутентификации. И как сервер должен использовать эти данные для доступа к ресурсам Facebook пользователя в любое время?
Я использую C# Facebook SDK для сервера. Но я думаю, что это не так важно, мне нужно понять механику.