2013-03-27 6 views
18

Google Drive API'sını kullanarak bir Javascript uygulamasında bir paylaşım iletişim kutusu açarken JS hatası yaşıyorum. Hata: Yakalanmamış Hata: Sözdizimi Hatası: DOM Özel Durum 12.Birden çok hesapta oturum açıldığında Google Drive API paylaşımı iletişim kutusu alınamıyor

Ancak, tüm Google hesaplarından çıkış yaptığımda ve yalnızca bir hesapta oturum açtığımda paylaşım iletişim kutusu düzgün çalışıyor. Yeni bir sekmede ikinci bir hesapta oturum açtığımda, paylaşım iletişim kutusu artık yukarıdaki hatayla çalışmaz ve başarısız olur.

Bu, Calling showSettingsDialog() on the Google Drive SDK throws a Refused to display document because display forbidden by X-Frame-Options'a çok benzer.

  • Google API Konsolu'nda Google Drive SDK ayarlarında kurdunuz URL "açık" Aynı olması gerekiyor: Ancak, ben yani boşuna, kabul tepki gösterilen hata ayıklama yaptık paylaşım iletişim kutusunu kullandığınız sayfa.
  • Şu anda, uygulamanızın yerleştirilebilmesi için uygulamanızın Google Drive'ınıza yüklenmesi gerekir. Şu anda bu kısıtlamayı kaldırmaya çalışıyoruz çünkü API’nın v2 sürümünü başlattığımızdan beri her zaman anlamlı değil.

ilgili kodudur: imzalanan Birden fazla hesaba sahip bu işi yapmak için bir yol

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

var mı?

+0

Test durumunuzu www.draw.io'ya karşı kontrol edebilir misiniz? Paylaşım desteği ve birden fazla hesap içeren bir Google Drive uygulaması. –

+0

@Boris Aynı hatayı draw.io ile alıyorum. İşte nasıl yeniden üretilir: 1) birden fazla google hesabında oturum açın. 2) draw.io'ya gidin. 3) "Google Drive ile Bağlan" ı tıklayın. 4) Bağlanmak için şu anda oturum açmış Google Hesaplarımdan birini seçin. 5) Drive ile bağlanın. 6) Dosya> Paylaş'a tıklayın. 7) Paylaşım diyaloğu animasyonlu bir spinner ile yüklenir. 8) Yaklaşık 30 saniye sonra, "paylaşımın şu anda mevcut olmadığını" belirten bir mesaj görüntülenir. 9) Bunu Chrome dev araçlarında alıyorum: "SyntaxError: DOM Exception 12 docs.google.com/static/doclist/client/js/3362885397-v2-doclist_share.js:475" –

+0

Evet, bu Google hatalarına benziyor. Henüz gönderdin mi? –

cevap

4

dikkatle x kare konuyla ilgili bu okumak isteyebilirsiniz:

Google Drive API, can't open standard sharing dialog via JS (x-frame-options error)

ama aynı anda tüm hesapları kimlik doğrulaması için mümkün olmadığını düşünüyorum, ama ne kadar belki setOAuthToken bir geçici çözüm Bunların her birini yapmak istediğiniz zaman.

google belgelerinde burada belirtilmek:

Important:The setOAuthToken function allows an app to use the current auth token to determine which Google account the picker uses to display the files. If a user is signed into multiple Google accounts, this allows the picker to display the files of the appropriate authorized account.

kaynak:

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

+0

Maalesef StackOverflow yanıtını okudum, ShareClient üzerinde açıkta bulunan bir 'setOAuthToken' yöntemini göremiyorum. – CodingIntrigue

+0

oAuth2.0 kullanmayı denediniz mi? https://developers.google.com/accounts/docs/OAuth2UserAgent – ProllyGeek

+1

Arka sayfada oAuth2 kullanıyorum. Kullanıcı zaten belirli bir hesaba karşı doğrulanmış. ShareClient – CodingIntrigue

2

Biz sadece son belirlemenizi sağlar ShareClient bir setOAuthToken() yöntemi eklendi hangi iletişim kullanıcı kullanmalı. Drive SDK release notes'da daha fazla ayrıntı.

+0

Lanet olsun çocuklar; Sadece kendi yazımdaki bir betiği kullanmak istiyorum ve şimdi yaratmadığım kodu düzeltmem gerekiyor. Google her zaman bir şeyler yaratır ve onları kullanan her biri için onları kırmaktadır. –

İlgili konular