2016-05-22 6 views
0

die Surveys API Beispiel Python-Skript ausprobieren, die „List Surveys“ Befehl gibt nur eine request_id und nicht ein „Ressourcen“ Objekt mit einer Liste von Umfragen wie erwartetSurveys Liste API nicht zurück Ressourcenverzeichnis

Executing das Beispielskript

surveysAPI.py --service_account --service_account_secrets_file certificate.json Liste

Ergebnisse von "list" Befehl to_json Methode:

{ 
    "body": null, 
    "methodId": "consumersurveys.surveys.list", 
    "resumable_uri": null, 
    "headers": { 
    "accept-encoding": "gzip,deflate", 
    "accept": "application/json", 
    "user-agent": "google-api-python-client/1.5.1 (gzip)" 
    }, 
    "uri": "https://www.googleapis.com/consumersurveys/v2/surveys?alt=json", 
    "resumable": null, 
    "body_size": 0, 
    "resumable_progress": 0, 
    "method": "GET", 
    "_in_error_state": false, 
    "response_callbacks": [] 
} 

Antwort von der Ausführung des List-Befehls - kein "Ressourcen" -Objekt wie angegeben.

{ 
    u'requestId': u'5742026000ff0e1cfc8a2e45010001737e3430322d747269616c320001707573682d30352d32302d7230380001013d' 
} 

Ich habe einige 150 Umfragen in meinem Konto. Dieser Befehl funktioniert im API-Explorer einwandfrei und ich kann die Kette der nächsten Seitentoken verwenden, um durch die Liste zu gehen.

Was mache ich bitte falsch?

Antwort

2

Es sieht so aus, als ob Sie mithilfe eines Dienstkontos versuchen möchten, Umfragen aufzulisten, die Ihrem Konto gehören. Um dies zu tun, müssen Sie das Dienstkonto als Eigentümer zu den Ressourcen hinzufügen, die Ihrem Konto gehören. Weitere Informationen zu diesem Prozess finden Sie hier: How can I allow a user to get access to survey results using the Google Consumer Surveys API?

Alternativ können Sie einen 3-beinigen OAuth-Client-Schlüssel einrichten und diesen mit dem Beispielskript verwenden. Dadurch werden Sie aufgefordert, sich als Ihr normales Nicht-Dienstkonto anzumelden und diese Anmeldeinformationen zu verwenden. Siehe https://developers.google.com/identity/protocols/OAuth2WebServer, um dies einzurichten.

Dann können Sie den Client mit diesen Anmeldeinformationen verwenden. ./example_client.py Liste --client_secrets_file

Stellen Sie sicher, dass die Anmeldeinformationen zum Weiterleiten an localhost: 8080 konfiguriert sind, wenn Sie das Beispielskript verwenden.

+0

Vielen Dank für diese schnelle, prägnante und präzise Antwort. Ich bin die OAuth-Route gegangen, weil es sehr zeitaufwendig wäre, mein Dienstkonto als Besitzer jeder Umfrage manuell hinzuzufügen. Alles funktioniert jetzt gut. Übrigens würde die Option "Liste" im Beispielskript sinnvollerweise verbessert werden, wenn sie die Seitennummerierung durchläuft. Derzeit listet es nur die erste Seite von Umfragen auf. –

Verwandte Themen