Ho un cliente che vorrebbe utilizzare SkyDrive come archivio cloud per un sito web. Questo sito web sarà non chiedendo all'utente del sito per il proprio account SkyDrive di mostrare loro i propri file, ma il proprietario del sito memorizzerà alcuni file in SkyDrive e vorrebbe condividerli con gli utenti che hanno effettuato l'accesso al proprio sito . La mia domanda è: come posso inviare le credenziali all'API SkyDrive direttamente dal codice PHP back-end del sito web?Come si autentica su un singolo account Skydrive e non si richiedono le credenziali all'utente?
I documenti API su Live Connect (http://msdn.microsoft.com/en-us/library/live/hh243647.aspx) sembrano concentrarsi sulla presentazione all'utente con un modulo di accesso per inviare le credenziali dell'utente al servizio. Di nuovo, non è quello che voglio. L'utente del sito Web non deve fare altro che andare alla pagina e vedrà i file specchiati dall'account SkyDrive. Le credenziali devono essere memorizzate sul server e inviate quando l'utente richiede la pagina.
Ho fatto una domanda simile a questa su Google Docs (How do I connect to the Google Calendar API without the oAuth authentication?). La risposta a questa domanda era di impostare uno script temporaneo per ottenere un token di aggiornamento che potesse essere utilizzato più e più volte per l'autenticazione. L'ho provato e ha funzionato. Tuttavia, non sono sicuro di quanto durerà il token di aggiornamento e se lo stesso metodo funzionerebbe con l'API SkyDrive.
Edit: Dopo aver fatto qualche ricerca, il Live Connect Docs (http://msdn.microsoft.com/en-us/library/live/hh826540) dicono:
Dopo che un utente fornisce il consenso, Live Connect dà la vostra applicazione di un codice speciale, o token di accesso, che consente al l'app funziona con quella parte delle informazioni dell'utente a cui ha acconsentito. In genere, questo token di accesso è valido per circa un'ora. Al termine di questa ora, la tua app non sarà più in grado di funzionare con le informazioni dell'utente: è necessario chiedere all'utente di eseguire nuovamente la procedura di accesso e consenso. Per aggirare questo problema, puoi chiedere all'utente di accettare l'ambito wl.offline_access. Ciò fornisce all'app un codice aggiuntivo, denominato token di aggiornamento, che l'app può utilizzare per ottenere un nuovo token di accesso ogni volta che ne ha bisogno, anche dopo che l'utente si è disconnesso, in genere, fino a un anno. Tuttavia, l'utente può revocare l'accesso alla tua app in qualsiasi momento. Se un utente sceglie di revocare il consenso alla tua app, non funzionano i token di accesso o i token di aggiornamento corrispondenti, l'app deve chiedere all'utente di eseguire nuovamente la procedura di accesso e consenso.
Quindi, sembra che il token di aggiornamento dura un anno. Ciò significa che potrei installare qualcosa per ottenere un token di aggiornamento, archiviarlo e, in ogni richiesta di pagina, utilizzare il token di aggiornamento per ottenere un token di accesso e visualizzare i dati. Tuttavia, una volta all'anno dovrei aggiornare il token di aggiornamento per questo client e memorizzarlo. Suona bene ed è questo il modo migliore per farlo?
Penso che il loro è come fb non è vero? Va avanti e avanti, se si memorizza il token dovrebbe funzionare per lunghi periodi di tempo. Dovrai mostrare all'utente la loro pagina di accesso almeno una volta, non puoi farlo senza autorizzazione, quindi l'esempio ti mostra questo. – Sammaye
@Sammaye per quanto posso dire, non vuole che il visitatore debba accedere a skydrive, ma accedere con un account che il proprietario del sito configura ed elencare i file associati a quell'account per condividere i file. Quindi elenca/condividi i file da un account skydrive sul suo sito con il suo sito che fornisce le credenziali. –
@JonathanKuhn Hmm sì, può essere letto in questo modo, potrebbe essere necessario chiarire – Sammaye