
私の会社では、OneDrive で Office 365 を使用しています。そこに Excel ファイルをアップロードし、「ゲスト リンク」経由で共有しました。
追加の認証なしでファイルをダウンロードするためだけに使用できるリンクを生成することは可能ですか?
自動化の目的で、私はシンプルなスキームを考えています:
wget https://acmeamce.sharepoint.com/personal/myname/.../blabla.xlsx
答え1
OneDrive for Businessが実際にはSharepoint 2013のブランド名を変更したものであることがわかったおかげで、Sharepoint@SEでの回答ドキュメントをプログラムでダウンロードするためのリンクを取得することができました。
これを実現する 1 つの方法は、Web GUI でドキュメントを右クリックして、そこにある URL を取得することです。この URL は認証を必要とするため、私の環境では機能しませんでしたが...
URLのプレフィックスを取る例
https://acmeacme.sharepoint.com/personal/myname/_layouts/15/download.aspx?SourceUrl=
ゲストリンクとして生成された「通常の」URL
https://acmacme.sharepoint.com/personal/myname/_layouts/15/guestaccess.aspx?guestaccesstoken=123123%3d&docid=123123
そして、それらを連結すると、うまく動作することがわかりました。
wget https://acmeacme.sharepoint.com/personal/myname/_layouts/15/download.aspx?SourceUrl=https://acmacme.sharepoint.com/personal/myname/_layouts/15/guestaccess.aspx?guestaccesstoken=123123%3d&docid=12312
答え2
編集リンクを少し変更するだけで済みます。guestaccess.aspx
を に置き換えるだけですdownload.aspx
。
答え3
このスレッドに追加します (正しい方向を示してくれました - ありがとうございます!)。上記のように試したところ、ダウンロードしようとすると 403 FORBIDDEN メッセージが表示され、ブラウザーに貼り付けると Office 365 ログインが表示されました。
解決するには、2 番目の URL の guestaccesstoken=... 部分をコピーし、それを最初の URL のパラメータにもしました。
その後、認証は正常に行われ、ダウンロードは問題なく機能しました。
ありがとう!スティーブ