1 回答

TA貢獻1777條經驗 獲得超3個贊
我相信你的目標和情況如下。
您想使用 php 的 googleapis 刪除消息。
您已經能夠獲取和輸入 Gmail API 的值。
在這種情況下,它使用Gmail API中的“users.messages.delete”方法。
示例腳本:
當你的腳本被修改后,它會變成如下所示。
$service = new Google_Service_Gmail($client);
foreach ($messages as $message){
? ? $msg = $service->users_messages->get($userId, $message->getId());
? ? $headers = $msg->getPayload()->getHeaders();
? ? $subject = array_values(array_filter($headers, function($k){
? ? ? ? return $k['name'] == 'Subject';
? ? }));
? ??
? ? $subject = $subject[0]->getValue();
? ? $body = base64_decode(var_export($msg->payload->body->data, true)));
? ? $service->users_messages->delete($userId, $message->getId());? // Added
}
“users.messages.delete”方法不返回任何值。請小心這一點。
筆記:
在這種情況下,假設
$service
可用于刪除消息。如果出現與范圍相關的錯誤,請添加范圍https://mail.google.com/
并再次測試。但當范圍改變時,請包含訪問令牌和刷新令牌的文件再次授權。這樣,新的范圍就會反映到訪問令牌和刷新令牌。請小心這一點。例如,如果在您當前的腳本中,范圍的使用類似于
$client->setScopes(Google_Service_Gmail::GMAIL_READONLY);
,請將其修改為$client->setScopes("https://mail.google.com/");
。并再次授權。
重要的
在這個修改后的腳本中,消息被完全刪除。所以我想建議使用示例消息來測試它。請小心這一點。
參考:
方法:users.messages.delete
- 1 回答
- 0 關注
- 143 瀏覽
添加回答
舉報