2014-11-05 3 views
5

Ich habe versucht, die Google Drive-API zu verwenden, um eine Fusiontable öffentlich lesbar zu machen, und konnte sie nicht zum Laufen bringen. Ich kann den OAuth 2.0-Playground verwenden, um öffentliche Freigabeberechtigungen für andere Google Drive-Dokumente einzufügen, aber für Fusionstables erhalte ich den HTTP 500-Fehler "Interner Fehler". Beachten Sie, dass ich versucht habe, alle verfügbaren Bereiche unter "Drive API v2" und "Fusion Tables API v1" einzubeziehen.Google Drive-API-Aufruf zum Einfügen öffentlicher Freigabeberechtigungen für Fusionstabellen verursacht internen Fehler

Ich bin mir bewusst, dass Google nicht mehr Fusiontables entwickelt und unterstützt, aber ich frage mich, ob jemand eine Problemumgehung gefunden hat, die es ihnen ermöglicht, dieses Problem zu umgehen? Ich habe auch keine veralteten Versionen der API ausprobiert.

Hier sind die tatsächlichen API-Anfrageformat und Antworten von OAuth Playground für eine Fusiontable-Berechtigungen einfügen (HTTP 500), dann eine Doc-Berechtigungen einfügen (HTTP 200). Der einzige Unterschied zwischen den Anforderungen der fusiontable_id oder document_id in dem Anforderungs-URI:

Anfrage:

POST /drive/v2/files/<fusiontable_id or document_id>/permissions HTTP/1.1 
Host: www.googleapis.com 
Content-length: 33 
Content-type: application/json 
Authorization: Bearer <access_token> 

{"role":"reader","type":"anyone"} 

Fusiontable Antwort:

HTTP/1.1 500 Internal Server Error 
Content-length: 180 
X-xss-protection: 1; mode=block 
X-content-type-options: nosniff 
Expires: Tue, 04 Nov 2014 23:51:58 GMT 
Vary: Origin,Referer,X-Origin 
Server: GSE 
Cache-control: private, max-age=0 
Date: Tue, 04 Nov 2014 23:51:58 GMT 
X-frame-options: SAMEORIGIN 
Content-type: application/json; charset=UTF-8 
{ 
    "error": { 
    "code": 500, 
    "message": "Internal Error", 
    "errors": [ 
     { 
     "domain": "global", 
     "message": "Internal Error", 
     "reason": "internalError" 
     } 
    ] 
    } 
} 

Doc Antwort:

HTTP/1.1 200 OK 
Content-length: 281 
X-xss-protection: 1; mode=block 
X-content-type-options: nosniff 
Expires: Fri, 01 Jan 1990 00:00:00 GMT 
Vary: Origin,Referer,X-Origin 
Server: GSE 
Etag: "M4l5RvCt2StP2jOGfgyJPGdTZTc/dgFZz37LrQjIXplUkmnh3VtemzQ" 
Pragma: no-cache 
Cache-control: no-cache, no-store, max-age=0, must-revalidate 
Date: Wed, 05 Nov 2014 15:35:56 GMT 
X-frame-options: SAMEORIGIN 
Content-type: application/json; charset=UTF-8 
{ 
    "kind": "drive#permission", 
    "etag": "\"M4l5RvCt2StP2jOGfgyJPGdTZTc/dgFZz37LrQjIXplUkmnh3VtemzQ\"", 
    "role": "reader", 
    "type": "anyone", 
    "id": "anyone", 
    "selfLink": "https://www.googleapis.com/drive/v2/files/<document_id>/permissions/anyone" 
} 
+1

Zur Klarstellung: „Google ist nicht mehr die Entwicklung und Unterstützung Fusion“ nicht der Fall ist, und ich wäre interessant zu hören, wo die Idee kam von :-) Wenn Sie diese Frage an [email protected] mit der eigentlichen Fusion Tables-Dokument-ID senden, können wir in unseren Protokollen nachsehen, um welches Problem es sich handelt. –

+0

Dank Rod, ich werde weitermachen, wie Sie vorgeschlagen haben. Ich dachte, dass die Entwicklung von Fusion Tables gestoppt wurde, weil die [Fusion Tables API-Benutzergruppe] (https://groups.google.com/forum/#!forum/fusion-tables-users-group) nicht mehr überwacht wird und weil [die Problem mit dem erneuten Laden von Google-Tabellen] (https://code.google.com/p/fusion-tables/issues/detail?id=675&q=import%20fails&colspec=ID%20Type%20Status%20Summary%20Stars%20Component) scheint alt genug und wichtig genug, dass es repariert worden wäre, wenn Fusion Tables noch in der Entwicklung wären. –

+0

Ich sollte wahrscheinlich das Wort "nicht überwacht" dort umschreiben, um zu verdeutlichen, dass FT aktiv ist, nur nicht auf dieser Liste.Was das Importieren von Tabellen angeht, gab es in diesem Zeitraum ein generelles Problem mit allen Google Drive-Apps, das die gleichen Symptome, aber nicht die gleiche Ursache hatte. Spreadsheet-Importe sind heutzutage stabil. –

Antwort

3

Dies erscheint aufgrund eines Fehlers in der Drive API sein. Ich habe den internen Fehler gefunden und das Problem mit dem Entwicklerteam angesprochen. Zu dieser Zeit sind keine Problemumgehungen bekannt.

+2

Nach ein paar Monaten scheint der interne Fehler immer noch da? Und jetzt, da die XML-basierte GData-API deaktiviert wurde, scheint es tatsächlich keine Problemumgehung zu geben ... – Arseniy

0

Wenn Sie mit einer vorübergehenden Problemumgehung einverstanden sind, funktioniert das Einfügen der öffentlichen Freigabeberechtigungen für Fusion Table weiterhin mit älteren XML-basierten GData-APIs. Sie können es überprüfen here, aber hüten Sie sich vor dem roten Banner am oberen Rand der Seite mit den Worten: "Der Abnutzungszeitraum für Version 3 der Google Docs-Liste API ist fast zu Ende. Am 20. April 2015 werden wir den Service für diese API einstellen. '

Wenn Sie also jetzt das Problem umgehen, das würde Sie bis April in Gang hält und dann lassen Sie sie die Drive API Fehler vor, dass behoben werden hoffen ...

+0

Okay, ich werde es versuchen, danke! –

+1

Ich habe die Problemumgehung zu einem meiner GitHub-Projekte hinzugefügt, so dass Sie sich den Code dort anschauen können: http://goo.gl/NDxHIr Die Methode in Zeile 165, es ist Objective-C, obwohl das meiste davon sich gerade entwickelt eine POST-Anfrage, die leicht lesbar sein sollte. – Arseniy

2

Ich habe eine gute Nachricht!

Ich habe eine E-Mail von googletables-feedback erhalten. Sie sagen, dass es jetzt funktionieren sollte.

Mein Code auf Google-Client JS API funktioniert

var setAccess = function setAccessF() { 
    gapi.client.request({ 
     path : '/drive/v2/files/{fileID}/permissions', 
     method : 'post', 
     body : { 
      'value' : 'anyone', 
      'type' : 'anyone', 
      'role' : 'reader' 
     } 
    }).then(opt_onFulfilled, opt_onRejected); 
} 

function opt_onRejected(e) { 
    console.log(e) 
} 

function opt_onFulfilled(e) { 
    console.log(e) 
} 
+2

Ich verwende nicht die Google Client JS-API, aber ich habe bestätigt, dass ich die Veröffentlichung einer FusionTable jetzt automatisieren kann. Vielen Dank! –

Verwandte Themen