2017-09-13 1 views
1

There are many post on this same topic but still there is no exact solution to solve this issue.Gmail API Uhr Anfrage nicht richtig

auch in den Google-API Link unten arbeitet, gibt es eine Option, um die API wie Invalid Topic Name does not match https://developers.google.com/gmail/api/v1/reference/users/watch

Diese API wirft einen Fehler zu testen, aber ich habe das Thema erstellt in der Pub-Sub und ich habe die Nachricht darauf veröffentlicht, das Thema funktioniert gut, aber auch ich bekomme unter Fehler. Ich erhalte 400 Fehler

{ "error": {"errors": [{ 
"domain": "global", 
"reason": "invalidArgument", 
"message": "Invalid topicName does not match projects/google.com:apisexplorerconsole/topics/*" } ],"code": 400,"message":"Invalid topicName does not match projects/google.com:apisexplorerconsole/topics/*" }} 

Ich habe versucht, diese API in Client-Seite aufzurufen, wie unten

gapi.client.gmail.users.watch({ 
    'userId': 'me', 
    "topicName": "projects/fast-metric-178608/topics/Test" 
    }).then(function (response) { 
     console.log(response) 
    }); 

Below Ausgang, erhalte ich Fehler 403

{ "error": { "errors": [{ 
"domain": "global", 
"reason": "forbidden", 
"message": "Error sending test message to Cloud PubSub projects/fast-metric-178608/topics/Test : User not authorized to perform this action."} ],"code": 403, "message": "Error sending test message to Cloud PubSub projects/fast-metric-178608/topics/Test : User not authorized to perform this action." }} 
+0

Sie erhalten 400 Fehler, weil Sie API Explorer verwenden. Wie in diesem [SO-Beitrag] (https://stackoverflow.com/a/30990958/5995040) angegeben, verwenden Sie den API-Explorer nicht, um ihn wie in anderen Posts vorgeschlagen zu testen. Sie können Cloud Pub/SUb-Aufrufe verwenden, wie es heißt im Leitfaden ([unter Verwendung Ihres eigenen Kundenkontos] (https://developers.google.com/gmail/api/guides/push)). –

+0

Überprüfen Sie abschließend, ob Sie Ihrem Dienstkonto die Berechtigung zur Veröffentlichung in Pub/Sub erteilt haben, wie in diesem [Post] (https://stackoverflow.com/a/43330485/5995040) und [forum] (https: //) angegeben. groups.google.com/forum/#!topic/cloud-pubsub-discuss/PjWGWbxtcQ4). –

+0

Danke für die Antwort, ich habe Dienstkonto erstellt und ich übergebe clientId als Parameter für die Authentifizierungsmethode var clientId = '89989545454-xyz.apps.googleusercontent.com'; function checkAuth() { gapi.auth.authorize ({ client_id: clientId, scope: bereiche, sofort: true }, handleAuthResult); } –

Antwort