18

Google Drive API を使用して Javascript アプリケーションで共有ダイアログを開くと、JS エラーが発生します。エラー: Uncaught Error: Syntax Error: DOM Exception 12.

ただし、すべての Google アカウントからログアウトしてから 1 つのアカウントだけにログインすると、共有ダイアログは正常に機能します。新しいタブで 2 番目のアカウントにログインするとすぐに、共有ダイアログが機能しなくなり、上記のエラーで失敗します。

これは、Google Drive SDK で showSettingsDialog() を呼び出すと、X-Frame-Options によって表示が禁止されているため、ドキュメントの表示を拒否するというエラーがスローされるのとよく似ています。ただし、受け入れられた応答に示されているデバッグを行いましたが、役に立ちませんでした。

  • Google API コンソールの Google ドライブ SDK 設定で設定した「open with」URL は、共有ダイアログを使用しているページと同じドメインを持つ必要があります。
  • 現在、埋め込み可能なウィジェットを機能させるには、アプリケーションを Google ドライブにインストールする必要があります。API の v2 をリリースして以来、この制限は常に意味があるとは限らないため、現在、この制限の削除に取り組んでいます。

関連するコードは次のとおりです。

var shareClient = new gapi.drive.share.ShareClient(rtpg.realTimeOptions.appId);
shareClient.setItemIds([rtclient.params['fileId']]);
shareClient.showSettingsDialog();

サインインしている複数のアカウントでこれを機能させる方法はありますか?

4

2 に答える 2

4

x-frame の問題に関して、これを注意深く読みたいと思うかもしれません:

Google ドライブ API、JS 経由で標準の共有ダイアログを開くことができません (x-frame-options エラー)

しかし、一度にすべてのアカウントを認証することは不可能だと思いますが、そうsetOAuthTokenするたびにそれぞれのアカウントに回避策を講じることができます。

ここのグーグルドキュメントには次のように記載されています:

重要: setOAuthToken 関数を使用すると、アプリは現在の認証トークンを使用して、ピッカーがファイルの表示に使用する Google アカウントを判別できます。ユーザーが複数の Google アカウントにサインインしている場合、ピッカーは適切な承認済みアカウントのファイルを表示できます。

ソース:

https://developers.google.com/drive/web/integrate-open

于 2014-03-25T14:17:10.120 に答える