Токен доступа Facebook для серверной части

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

Я пытаюсь понять шаги, которые мне нужно предпринять, чтобы заставить его работать.

Я читал Facebook: Вход для серверных приложений но я не могу понять, как использовать предложенный там сценарий - потому что мой сервер не имеет ничего общего с взаимодействием с пользователем (я не могу перенаправить пользователя в какой-либо диалог входа) - сервер выполняет свой собственный работа в фоновом режиме независимо от того, использует ли пользователь свое мобильное приложение или нет. Что мне делать, например, по истечении срока действия токена?

Более того, я хочу, чтобы пользователь мог напрямую работать с Facebook на своем мобильном телефоне, без вмешательства сервера.

Как я вижу, это поток, который я ожидал бы:

  1. Пользователь запускает родное мобильное приложение.
  2. Пользователь проходит аутентификацию с помощью SDK Facebook в родном мобильном приложении.
  3. Пользователь получил специальный токен, который на стороне сервера можно преобразовать в токен доступа.
  4. Токен будет отправлен на сервер и сохранен там.
  5. Если серверу необходимо получить доступ к данным пользователя Facebook, он использует этот специальный токен и преобразует его в токен доступа.
  6. По истечении срока действия токена сервер может продлить его, используя специальный токен, без какого-либо взаимодействия с пользователем.

Какие данные должны быть отправлены на сервер из мобильного приложения после аутентификации. И как сервер должен использовать эти данные для доступа к ресурсам Facebook пользователя в любое время?

Я использую C# Facebook SDK для сервера. Но я думаю, что это не так важно, мне нужно понять механику.


person Yaniv    schedule 22.11.2012    source источник
comment
У меня была аналогичная проблема, и я решил ее, отправив токен доступа на мой сервер, затем с помощью facebook-serverside-sdk я делаю с ним то, что хочу, но у токена есть срок действия, я точно не знаю, как долго он будет живи пока не кончилось...   -  person norman784    schedule 22.11.2012


Ответы (1)


Срок действия токенов истекает, если пользователь не продолжает использовать приложение. Это задумано — приложение не должно продолжать доступ к учетной записи пользователя, если пользователь перестанет использовать приложение.

Когда пользователь входит в ваше приложение, вашему приложению передается токен вместе с датой истечения срока действия этого токена. Вы можете использовать этот токен со своего клиента или сервера, пока не истечет срок его действия. Однако ваш сервер ничего не может сделать для продления токена, если пользователь не продолжит использовать ваше приложение.

Если пользователь продолжит использовать ваше приложение, у вас будет возможность обновить токен сервера. Например, в SDK для Android и iOS токены автоматически обновляются, если пользователь использует ваше приложение для отправки запроса в facebook. В это время вы можете передать обновленный токен на свой сервер.

person rightparen    schedule 24.11.2012