2013-06-07 11 views
5

Ich habe Dokumentation wurden folgende Google-Dateien auf Laufwerk zu teilen: Share FilesGemeinsame Nutzung von Dateien mit Google Drive SDK

Wenn ich eine Datei in Google Drive aus dem Google Drive-Schnittstelle laden, dann versuchen, diese Datei von meinem Webapp zu teilen , bekomme ich die folgenden Fehler in meiner Javascript-Konsole:

in Chrom:

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'. 

in firefox:

[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. 

Jetzt ist das komische Ding, wenn ich die Datei von meiner webapp herstelle und auf Antrieb durch die API hochlade, kann ich die Akte ohne Problem teilen.

Noch seltsamer ist es genug, dass ich die Datei einmal aus Laufwerk öffnen (ich die Webapp in meinem Laufwerk installiert habe, so kann ich Dateien öffne meine Webapp mit) in der Lage sein, es zu teilen, auch wenn ich später Verwenden Sie Drive nicht mehr, um die Datei zu öffnen.

Eine Idee, was könnte diese Art von Verhalten verursachen?

In meinem Laufwerk SDK Konsole, stellte ich die URL öffnen zu: http://sandbox.velop.org/my-google-drive/detail

Wenn ich die Datei in Laufwerk mit meinem Webapp öffnen, fährt so leitet mich an: 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

Wenn (in der Lage zu teilen) ich öffne eine Datei in meinem Webapp, ist die URL wie: http://sandbox.velop.org/my-google-drive/0B6UmN_AivG7SLWVYakF2Rk1CdDg/detail (nur in der Lage zu teilen, wenn aus dem Laufwerk geöffnet einmal vor)

EDIT:

Ich erkennen dies das Standardverhalten für Google Drive API wie here ist:

Wenn Benutzer diese Bereiche zu genehmigen, die App für den Benutzer installiert ist, mit Zugriff auf Dateien, die der Benutzer erstellt oder öffnet mit der App.

Gibt es eine Möglichkeit, der App das Öffnen/Schreiben einer Datei zu erlauben?

Ich dachte, dass die https://www.googleapis.com/auth/drive Umfang zu verwenden, wenn meine app Registrierung würde mir erlauben, dies zu tun, aber scheint nicht der Fall zu sein ..

+0

Haben Sie Glück dabei? Ich versuche, eine Laufwerksdatei von einem Benutzer auf einen anderen zu kopieren und eine verdammt schöne Zeit zu haben. – ggwarpig

+0

14 Monate später habe ich die gleichen Probleme ... jemals etwas finden? –

Antwort

0

mir läuft in genau der gleichen Ausgabe.

Meine App fordert den vollen Laufwerksumfang an (die App sollte also Zugriff auf alle Dateien haben). Die Freigabe funktioniert jedoch nur, wenn die Datei vom Benutzer zuvor vom Laufwerk geöffnet wurde. Es scheint etwas magisches "while-listing" von Dateien zu geben, die vom Laufwerk geöffnet wurden.

Beim Zugriff auf eine Datei, die vom Laufwerk nicht geöffnet wurde, bevor ich ...

Refused HTPS anzuzeigen:? //drive.google.com/share id = 0534534543iTEhYamxfUnc2MnM & foreignServi ... ent = postmessage & appId = 46459361793 & embedOriginal = http% 3A% 2F% 2Fwww.editey.com 'in einem Frame, weil es' X-Frame-Optionen 'auf' SAMEORIGIN 'gesetzt hat.

... was offensichtlich irreführend ist, da der Share-Button nicht in einem Frame ist.

das Geben URL in einem neuen Browser-Tab öffnen gibt einen Hinweis auf die eigentliche Wurzel-Ursache: Applikation ‚3453459361793‘ nicht berechtigt ist, Dokument „0B0o5345345DAc_SiTEhYamxfUnc2MnM“ zuzugreifen.

Meine App sollte Zugriff auf das Dokument haben, aber es sieht so aus, als ob der "Freigabe-Dialog" als separate App fungiert, die nur den Zugriff auf Dateien erlaubt, die zuvor vom Laufwerk geöffnet wurden.

0

Aus Sicherheitsgründen können Sie diesen Dialog nicht verwenden, es sei denn, Sie befinden sich in der URL, die in Ihrer "URL öffnen" angegeben ist.

Ihre aktuelle URL http://sandbox.velop.org/my-google-drive/0B6UmN_AivG7SLWVYakF2Rk1CdDg/detail! = http://sandbox.velop.org/my-google-drive/detail

So können Sie Ihre URL-Struktur ändern möchten. Vielleicht etwas wie http://sandbox.velop.org/my-google-drive/detail?open=B6UmN_AivG7SLWVYakF2Rk1CdDg

Dies ist echte Schmerzen im Nacken, vor allem bei der Entwicklung auf einer anderen Domäne.

+0

Merkwürdig genug, aber das Problem tritt auch auf, wenn die URL genau richtig ist. Der Freigabe-Dialog beginnt sofort zu arbeiten (ohne die Seite neu zu laden), selbst wenn ich die Datei in einem völlig anderen Browser öffne. – dflorey