Как читать мои сообщения Gmail Inbox через API Gmail (Google) без oauth

Я создал код, с помощью которого я могу читать свои входящие сообщения, но мне нужно проверять подлинность приложения каждый раз, когда я снова открываю браузер, и на самом деле я хочу читать электронные письма только с одного адреса электронной почты (мой адрес электронной почты). Поэтому я думаю, что должен быть другой способ получить доступ только к моему почтовому ящику Gmail без аутентификации. Кстати, это мой код

   <?php
session_start();
require_once 'google-api-php-client/vendor/autoload.php';
$client = new Google_Client;
$client->setClientId('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
$client->setClientSecret('xxxxxxxxxxxxxxxxxxxx');
$client->setRedirectUri('http://localhost/gmail_api/redirect.php');
$client->addScope(Google_Service_Gmail::GMAIL_READONLY);
$client->setAccessType('offline');

if(isset($_GET['code'])){
$client->authenticate($_GET['code']);
$access_token = $client->getAccessToken();
$_SESSION['access_token']= $access_token;
header('Location:redirect.php');
}

?>

<!doctype html>
<html>
<body>
<?php  if(!isset($_SESSION['access_token'])): ?>

<a href="<?php echo $client->createAuthUrl(); ?>"> LogIn to google </a>
<?php else:
$access_token = $_SESSION['access_token'];
$client->setAccessToken($access_token);
?>
You are Signin
<a href = "logout.php">logout </a>
<form method="get" action="">
<input type="text" name="search">
<input type="submit" value="search">
</form>
<?php endif; ?>
<?php
$service = new Google_Service_Gmail($client);
function getHeader($headers, $name) {
foreach($headers as $header) {
if($header['name'] == $name) {
return $header['value'];
}
}
}
try{      $optParams = [];
$optParams['maxResults'] = 500; // Return Only 5 Messages
$optParams['labelIds'] = 'INBOX'; // Only show messages in Inbox
$optParams['includeSpamTrash'] = false;
$optParams['q'] = $_GET['search'];
$messages = $service->users_messages->listUsersMessages('me',$optParams);

$list = $messages->getMessages();

foreach($list as $value){
$messageId = $value->getId(); // Grab first Message
$optParamsGet = [];
$optParamsGet['format'] = 'full'; // Display message in payload
$message = $service->users_messages->get('me',$messageId,$optParamsGet);
$messagePayload = $message->getPayload();
$From = getHeader($headers,'From');
echo "<pre>";
print_r($messagePayload);
echo "</pre>";
$headers = $message->getPayload()->getHeaders();
$parts = $message->getPayload()->getParts();
$subject = getHeader($headers,'Subject');
$Date = getHeader($headers,'Date');
$From = getHeader($headers,'From');
echo "<pre>";
print_r($parts);
echo "</pre>";
$text_data = $parts[0]['body']->data;
$body = $parts[1]['body'];
$rawData = $body->data;
$sanitizedData = strtr($rawData,'-_', '+/');
$decodedMessage = base64_decode($sanitizedData);
$text_data = base64_decode(strtr($text_data,'-_', '+/'));
echo "<h2>$subject </h2>";
echo "Date:$Date <br>";
echo "From:". htmlspecialchars($From)."<br>";
print_r($text_data);
print_r($decodedMessage);
}

} catch (Exception $e) {
print($e->getMessage());
unset($_SESSION['access_token']);
}
?>

</body>
</html>

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector