ドライブでファイルを共有するために、Google のドキュメントに従っています:ファイルの共有
Google ドライブ インターフェースから Google ドライブにファイルをアップロードし、このファイルを Web アプリケーションから共有しようとすると、JavaScript コンソールに次のエラーが表示されます。
クロムで:
Refused to display 'https://drive.google.com/share?id=0B6UmN_AivG7SLWVYakF2Rk1CdDg&foreignServi…=postMessage&appId=958414147877&embedOrigin=http%3A%2F%2Fsandbox.velop.org' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
ファイアフォックスで:
[14:04:41.157] Load denied by X-Frame-Options: https://drive.google.com/share?id=0B6UmN_AivG7SLWVYakF2Rk1CdDg&foreignService=explorer&shareService=explorer&shareProtocolVersion=2&command=init&subapp=10&popupWindowsEnabled=true&shareUiType=default&rand=1370585078609&theme=2&client=postMessage&appId=958414147877&embedOrigin=http%3A%2F%2Fsandbox.velop.org does not permit cross-origin framing.
奇妙なことに、webapp からファイルを作成し、API を介してドライブにアップロードすると、問題なくファイルを共有できます。
さらに奇妙なことに、ドライブ内からファイルを1 回開くだけで十分です(ドライブに Web アプリをインストールしたので、Web アプリを使用してファイルを開くことができます)。後でドライブを使用しなくても、ファイルを共有できます。もうファイルを開きます。
この種の動作の原因は何ですか?
Drive SDK コンソールで、開く URL を次のように設定しました。http://sandbox.velop.org/my-google-drive/detail
ウェブアプリを使用してドライブでファイルを開くと、ドライブは次のようにリダイレクトします: http://sandbox.velop.org/my-google-drive/detail?state=%7B%22ids%22:%5B%220B6UmN_AivG7SLWVYakF2Rk1CdDg%22%5D,%22action%22:%22open%22,%22userId%22:%22105908447865504163566%22%7D
(共有可能)
Web アプリでファイルを開くと、URL は次のようになります: http://sandbox.velop.org/my-google-drive/0B6UmN_AivG7SLWVYakF2Rk1CdDg/detail
(以前にドライブから一度開いた場合にのみ共有できます)
編集:
ここで説明されているように、これが Google Drive API の標準的な動作であることに気付きました。
ユーザーがこれらのスコープを承認すると、アプリがユーザー用にインストールされ、ユーザーがアプリで作成または開いたファイルにアクセスできます。
アプリが任意のファイルを開いたり書き込んだりできるようにする方法はありますか?
アプリを登録するときにスコープを使用すると、https://www.googleapis.com/auth/drive
これが可能になると思いましたが、そうではないようです..