Esempio n. 1
0
            $messagesResponse = $service->users_messages->listUsersMessages('me', $opt_param);
            if ($messagesResponse->getMessages()) {
                $messages = array_merge($messages, $messagesResponse->getMessages());
                $pageToken = $messagesResponse->getNextPageToken();
            }
        } catch (Exception $e) {
            print 'An error occurred: ' . $e->getMessage();
        }
    } while ($pageToken);
    return $messages;
}
if (isset($authUrl)) {
    echo "<a class='login' href='" . $authUrl . "'>Connect Me!</a>";
} else {
    $service = new Google_Service_Gmail($client);
    $messages = listMessages($service, 'me');
    $con = count($messages);
    //echo $con.'<br/>';
    $ar = [];
    $cnt = 0;
    for ($q = 0; $q < 200; $q += 100) {
        $messageList = array();
        for ($m = $q, $x = 0; $m < $q + 100, $x < 100; $m++, $x++) {
            $messageList[$x] = $messages[$m];
        }
        //$messages= $service->users_messages->listUsersMessages('me', array('labelIds'=>array("IMPORTANT"),'maxResults' => 100,'q'=>$str),$opt_param);
        //$messageList = $messages->getMessages();
        $client->setUseBatch(true);
        $batch = new Google_Http_Batch($client);
        foreach ($messageList as $msg_obj) {
            //echo $msg_obj->id.'<br/>';
 public function mostrarDetalle($cuadrante_id)
 {
     function getClient()
     {
         $client = new Google_Client();
         $client->setApplicationName(APPLICATION_NAME);
         $client->setScopes(SCOPES);
         $client->setAuthConfigFile(CLIENT_SECRET_PATH);
         $client->setAccessType('offline');
         $client->setApprovalPrompt('force');
         //esta linea la he añadido yo
         // Load previously authorized credentials from a file.
         $credentialsPath = CREDENTIALS_PATH;
         // dd($credentialsPath);
         if (file_exists($credentialsPath)) {
             $accessToken = file_get_contents($credentialsPath);
         } else {
             // Request authorization from the user.
             dd('no hay autorización, habrá que modificar el código');
             $authUrl = $client->createAuthUrl();
             printf("Open the following link in your browser:\n%s\n", $authUrl);
             print 'Enter verification code: ';
             $authCode = trim(fgets(STDIN));
             // Exchange authorization code for an access token.
             $accessToken = $client->authenticate($authCode);
             // Store the credentials to disk.
             if (!file_exists(dirname($credentialsPath))) {
                 mkdir(dirname($credentialsPath), 0700, true);
             }
             file_put_contents($credentialsPath, $accessToken);
             // printf("Credentials saved to %s\n", $credentialsPath);
         }
         $client->setAccessToken($accessToken);
         // Refresh the token if it's expired.
         if ($client->isAccessTokenExpired()) {
             $client->refreshToken($client->getRefreshToken());
             file_put_contents($credentialsPath, $client->getAccessToken());
         }
         return $client;
     }
     function listMessages($service, $userId, $fecha, $email)
     {
         $pageToken = NULL;
         $messages = array();
         $opt_param = array();
         //mensaje de ese empleado para ese día
         $opt_param['q'] = 'subject:' . $fecha . ' from:' . $email . ' label:Inbox';
         do {
             try {
                 if ($pageToken) {
                     $opt_param['pageToken'] = $pageToken;
                 }
                 $messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
                 if ($messagesResponse->getMessages()) {
                     $messages = array_merge($messages, $messagesResponse->getMessages());
                     $pageToken = $messagesResponse->getNextPageToken();
                 }
             } catch (Exception $e) {
                 print 'An error occurred: ' . $e->getMessage();
             }
         } while ($pageToken);
         return $messages;
     }
     function modifyMessage($service, $userId, $messageId, $labelsToAdd, $labelsToRemove)
     {
         $mods = new Google_Service_Gmail_ModifyMessageRequest();
         $mods->setAddLabelIds($labelsToAdd);
         $mods->setRemoveLabelIds($labelsToRemove);
         try {
             $message = $service->users_messages->modify($userId, $messageId, $mods);
             // print 'Message with ID: ' . $messageId . ' successfully modified.';
             return $message;
         } catch (Exception $e) {
             print 'An error occurred: ' . $e->getMessage();
         }
     }
     function getHeader($headers, $name)
     {
         foreach ($headers as $header) {
             if ($header['name'] == $name) {
                 return $header['value'];
             }
         }
     }
     function getHeaders($headers, $campos)
     {
         foreach ($headers as $header) {
             for ($i = 0; $i < count($campos); $i++) {
                 if ($header['name'] == $campos[$i]) {
                     $results[$campos[$i]] = $header['value'];
                 }
             }
         }
         return $results;
     }
     // function getBody($partes){
     // 	foreach($partes as $parte){
     // 		if($parte['name'] == 'body')
     // 	}
     // }
     /*
      * Decode the body.
      * @param : encoded body  - or null
      * @return : the body if found, else FALSE;
      */
     function decodeBody($body)
     {
         $rawData = $body;
         $sanitizedData = strtr($rawData, '-_', '+/');
         $decodedMessage = base64_decode($sanitizedData);
         if (!$decodedMessage) {
             $decodedMessage = FALSE;
         }
         return $decodedMessage;
     }
     $cuadrante = Cuadrante::where('id', $cuadrante_id)->first();
     $lineas = LineaCuadrante::where('cuadrante_id', $cuadrante_id)->orderBy('tipo', 'asc')->orderBy('salida', 'asc')->get();
     $fecha = $cuadrante->fecha;
     $fecha = date_format($fecha, 'd-m-Y');
     $valores = $this->empleadosTrabajando($cuadrante_id);
     Javascript::put(['valores' => $valores]);
     if ($cuadrante->estado == 'Validado') {
         define('APPLICATION_NAME', 'Gmail API PHP Quickstart');
         define('CREDENTIALS_PATH', base_path() . '/storage/app/.credentials/gmail-php-quickstart.json');
         define('CLIENT_SECRET_PATH', __DIR__ . '/client_secret.json');
         // If modifying these scopes, delete your previously saved credentials
         define('SCOPES', implode(' ', array(Google_Service_Gmail::GMAIL_MODIFY)));
         /**
          * Returns an authorized API client.
          * @return Google_Client the authorized client object
          */
         // Get the API client and construct the service object.
         $client = getClient();
         $service = new Google_Service_Gmail($client);
         $userId = 'me';
         // lista de labels con ids
         // $results = $service->users_labels->listUsersLabels($userId);
         // dd($results);
         $messages = listMessages($service, $userId, $fecha, null);
         if ($messages) {
             foreach ($lineas as $linea) {
                 $email = $linea->empleado->email;
                 $mensaje = listMessages($service, $userId, $fecha, $email);
                 // $labelsToAdd = ['Label_1'];
                 $labelsToRemove = ['INBOX'];
                 if (count($mensaje) == 1) {
                     // dd('hay uno');
                     $linea->mensaje_id = $mensaje[0]->id;
                     $detalle_mensaje = $service->users_messages->get($userId, $mensaje[0]->id);
                     $headers = $detalle_mensaje->getPayload()->getHeaders();
                     $partsBody = $detalle_mensaje->getPayload()->getParts();
                     $body = decodeBody($partsBody[0]['body']['data']);
                     $campos = array('Subject', 'Date');
                     $results = getHeaders($headers, $campos);
                     $linea->asunto = $results['Subject'];
                     $fechaLocal = date("Y-m-d H:i:s", strtotime($results['Date']));
                     $linea->fechaMensaje = $fechaLocal;
                     $linea->body = $body;
                     // $subject = getHeader($headers, 'Subject');
                     // $linea->asunto = $subject;
                     $linea->estado = 'Firmado';
                     $linea->save();
                     // modifyMessage($service,$userId,$linea->mensaje_id,$labelsToAdd,$labelsToRemove);
                     modifyMessage($service, $userId, $linea->mensaje_id, ['Label_1'], $labelsToRemove);
                 } else {
                     if (count($mensaje) > 1) {
                         //archivo en duplicados(Label_2) los antiguos
                         // dd(count($mensaje));
                         for ($i = 1; $i < count($mensaje); $i++) {
                             $detalle_mensaje = $service->users_messages->get($userId, $mensaje[$i]->id);
                             $headers = $detalle_mensaje->getPayload()->getHeaders();
                             $subject = getHeader($headers, 'Subject');
                             modifyMessage($service, $userId, $mensaje[$i]->id, ['Label_2'], $labelsToRemove);
                         }
                     } else {
                         if (!count($mensaje)) {
                             // no hay ninguno y continua el foreach
                         }
                     }
                 }
             }
         }
     }
     return view('controlHorario.detalleCuadrante', compact('cuadrante', 'lineas'));
 }
Esempio n. 3
0
        login();
        break;
    case 'logout':
        logout();
        break;
    case 'newMessage':
        newMessage();
        break;
    case 'editMessage':
        editMessage();
        break;
    case 'deleteMessage':
        deleteMessage();
        break;
    case 'listMessages':
        listMessages();
        break;
    case 'newUser':
        newUser();
        break;
    case 'editUser':
        editUser();
        break;
    case 'deleteUser':
        deleteUser();
        break;
    default:
        listUsers();
}
function login()
{
Esempio n. 4
0
        $message = $service->users_messages->get($userId, $messageId);
        //print 'Message with ID: ' . $message->getId() . ' retrieved.';
        return $message;
    } catch (Exception $e) {
        print 'An error occurred: ' . $e->getMessage();
    }
}
function createSavedFile($data = array())
{
    file_put_contents(SAVED_FILE, json_encode($data));
}
// Get the API client and construct the service object.
$client = getClient();
$service = new Google_Service_Gmail($client);
$user = '******';
$results = listMessages($service, $user);
$saved = array();
if (!file_exists(SAVED_FILE)) {
    createSavedFile();
} else {
    $saved_contents = json_decode(file_get_contents(SAVED_FILE));
    if (empty($saved_contents)) {
        createSavedFile();
    } else {
        $saved = $saved_contents;
    }
}
foreach ($results as $obj) {
    $msg = getMessage($service, $user, $obj->getId());
    //$parts = $msg->getPayload()->getParts();
    //$body = $parts[0]['body'];