У меня есть клиент, который хотел бы использовать SkyDrive в качестве облачного хранилища для веб-сайта. Этот веб-сайт не будет запрашивать у пользователя сайта его учетную запись SkyDrive, чтобы показать ему свои файлы, а скорее владелец веб-сайта будет хранить некоторые файлы в SkyDrive и хотел бы поделиться ими с пользователями. зашел на его сайт. Мой вопрос: как я могу отправить учетные данные в SkyDrive API непосредственно из внутреннего PHP-кода веб-сайта?
Документация по API в Live Connect (http://msdn.microsoft.com/en-us/library/live/hh243647.aspx), по-видимому, сосредоточены на предоставлении пользователю формы входа в систему для отправки учетных данных пользователя в службу. Опять же, это не то, чего я хочу. Пользователю веб-сайта не нужно ничего делать, кроме как перейти на страницу, и он увидит файлы, зеркально отраженные из учетной записи SkyDrive. Учетные данные должны храниться на сервере и отправляться, когда пользователь запрашивает страницу.
Я задал подобный вопрос о Документах Google (Как мне подключиться к Google Calendar API без аутентификации oAuth?). Ответ на этот вопрос заключался в настройке временного сценария для получения токена обновления, который можно было бы использовать снова и снова для аутентификации. Я попробовал это, и это сработало. Однако я не уверен, как долго действует токен обновления и будет ли тот же метод работать с API SkyDrive.
Изменить: после дополнительных исследований документы Live Connect (http://msdn.microsoft.com/en-us/library/live/hh826540) скажите:
После того как пользователь дает согласие, Live Connect предоставляет вашему приложению специальный код или токен доступа, который позволяет вашему приложению работать с той частью информации пользователя, на которую он дал согласие. Как правило, этот токен доступа действует около часа. По истечении этого часа ваше приложение больше не сможет работать с информацией о пользователе — оно должно снова попросить пользователя пройти процесс входа и согласия. Чтобы обойти это, вы можете попросить пользователя дать согласие на использование области wl.offline_access. Это дает вашему приложению дополнительный код, называемый токеном обновления, который ваше приложение может использовать для получения нового токена доступа, когда он ему нужен — даже после выхода пользователя — обычно на срок до года. Однако пользователь может отозвать доступ к вашему приложению в любое время. Если пользователь решит отозвать согласие на ваше приложение, никакие соответствующие токены доступа или токены обновления не будут работать — ваше приложение должно попросить пользователя еще раз пройти процесс входа и получения согласия.
Итак, похоже, что токен обновления длится год. Это означает, что я мог бы настроить что-то, чтобы получить токен обновления, сохранить его и при каждом запросе страницы использовать токен обновления для получения токена доступа и отображения данных. Однако раз в год мне приходилось обновлять токен обновления для этого клиента и сохранять его. Звучит ли это правильно, и это лучший способ сделать это?