1 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
我相信你的目標(biāo)和情況如下。
您想使用 php 的 googleapis 刪除消息。
您已經(jīng)能夠獲取和輸入 Gmail API 的值。
在這種情況下,它使用Gmail API中的“users.messages.delete”方法。
示例腳本:
當(dāng)你的腳本被修改后,它會(huì)變成如下所示。
$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”方法不返回任何值。請(qǐng)小心這一點(diǎn)。
筆記:
在這種情況下,假設(shè)
$service
可用于刪除消息。如果出現(xiàn)與范圍相關(guān)的錯(cuò)誤,請(qǐng)?zhí)砑臃秶?code>https://mail.google.com/并再次測(cè)試。但當(dāng)范圍改變時(shí),請(qǐng)包含訪問令牌和刷新令牌的文件再次授權(quán)。這樣,新的范圍就會(huì)反映到訪問令牌和刷新令牌。請(qǐng)小心這一點(diǎn)。例如,如果在您當(dāng)前的腳本中,范圍的使用類似于
$client->setScopes(Google_Service_Gmail::GMAIL_READONLY);
,請(qǐng)將其修改為$client->setScopes("https://mail.google.com/");
。并再次授權(quán)。
重要的
在這個(gè)修改后的腳本中,消息被完全刪除。所以我想建議使用示例消息來測(cè)試它。請(qǐng)小心這一點(diǎn)。
參考:
方法:users.messages.delete
- 1 回答
- 0 關(guān)注
- 161 瀏覽
添加回答
舉報(bào)