Gmail-API: Unzureichende Berechtigungen
DIE SITUATION:
Teste ich das Gmail-API für meine app.
Habe ich getestet, einige Anforderungen und arbeiten Sie in Ordnung.
Zum Beispiel Nachrichten bekommen, bekommen, Benutzer, Geschichte, erhalten draft-Liste etc..
Grundsätzlich alle nur Lesen Anfragen funktionieren.
Habe ich stattdessen einige Fragen im Zusammenhang mit der Erlaubnis mit anderen Anfragen, wenn ich zum Beispiel schreiben oder löschen Sie einen Entwurf.
Dies ist die Fehlermeldung die ich bekomme:
(403) Insufficient Permission
CODE:
Dies ist die Funktion zum initialisieren der app:
public function gmail_init_service()
{
$client = new Google_Client();
$client->setApplicationName("Gmail API test");
$client->setDeveloperKey("MY_KEY");
$client->setClientSecret('MY_CLIENT_SECRET');
$client->SetClientId('MY_CLIENT_ID');
$client->setScopes(array('https://mail.google.com/'));
$client->setAccessToken('{"access_token":"MY_ACCESS_TOKEN","token_type":"Bearer","expires_in":3600,"refresh_token":"MY_REFRESH_TOKEN","created":1433502343}');
$service = new Google_Service_Gmail($client);
return $service;
}
Dies ist die Anforderung zum löschen eines Entwurfs:
public function gmail_delete_draft()
{
$service = $this->gmail_init_service();
//--------------- Get draft list --------------
$list = $service->users_drafts->listUsersDrafts('me');
$draftList = $list->getDrafts();
//--------------- Get draft IDs ---------------
$inbox_draft = [];
foreach($draftList as $mlist)
{
$draftId = $mlist->id;
$optParamsGet2['format'] = 'full';
$single_message = $service->users_drafts->get('me', $draftId , $optParamsGet2);
$inbox_draft[]['draftId'] = $draftId;
$inbox_draft[]['draft'] = $single_message;
}
//--------------- Delete draft ---------------
$draft_delete = $service->users_drafts->delete('me', 'DRAFT_ID' );
}
EDIT:
Habe ich versucht, einen Widerruf der Genehmigung und Einrichtung von neuen Anmeldeinformationen.
Der Umfang erklärt, bei der Initialisierung des service ist:
https://mail.google.com/
dass wie in der Dokumentation erwähnt gewähren vollen Zugriff auf das Konto.
Aber ich bin noch immer der gleiche Fehler.
Genau die gleiche Fehlermeldung für die folgenden Anfragen:
Löschen - Entwurf- Entwurf Erstellen - Etiketten Erstellen - Löschen-Nachricht
DIE FRAGE:
Warum bin ich immer Fehler?
Es hat zu tun mit den gleichen Werten Speicher in einem cache?
Oder wird mit Erlaubnis von der API?
- Wie bekommen Sie den access_token in den ersten Platz?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie 'https://www.googleapis.com/auth/gmail.compose", um einen Entwurf erstellen. Was passiert also, wenn Sie
oder wenn Sie möchten, um mehr formale
oder was auch immer die gültige php sein könnte (ich habe nicht getan, die php für eine Weile).
Hinweis, dass, wenn Sie ein token schon könnten Sie zu tun haben, einige calisthenics zu widerrufen, können Sie es wiederholen, mit den zusätzlichen Berechtigungen. Das kann bedeuten, dass eine Datei gelöscht wurde, vielleicht benannt gmail.Lagerung oder, wenn Sie Zugriff auf die account-login-Daten und machen Sie Ihren Weg zu https://security.google.com/settings/security/permissions die Zugriffsberechtigungen kann manuell aufgehoben werden.
Diesem link relevant sein könnte:
https://developers.google.com/gmail/api/auth/scopes
Und ein Mäander durch die source-code könnte sehr aufschlussreich sein.
Könnten Sie in der Lage sein, herauszubekommen, einige Einblicke von meinem Kampf mit dieser gleichen Art der Sache unter Python
Müssen Sie
https://mail.google.com/
wie Sie Ihren Spielraum, um in der Lage zu löschen mail.