![Office 365 で、One Drive for Business に保存されている Excel ドキュメントの直接ダウンロード リンクを取得するにはどうすればよいですか?](https://rvso.com/image/1428750/Office%20365%20%E3%81%A7%E3%80%81One%20Drive%20for%20Business%20%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%20Excel%20%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E7%9B%B4%E6%8E%A5%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%20%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私の会社では、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 のパラメータにもしました。
その後、認証は正常に行われ、ダウンロードは問題なく機能しました。
ありがとう!スティーブ