1

J'effectue une démonstration pour synchroniser mes événements avec Google Agenda à partir d'un formulaire d'ajout d'événement. J'ai terminé la connexion avec Google, mais je ne peux plus me synchroniser avec Google Agenda. C'est en me donnant l'erreur 401. aidez-moi s'il vous plaît Voici mon aide de code serait apprécier merci :)Comment synchroniser mes événements avec Google Agenda après Google Connexion

planificateur

<script src="https://apis.google.com/js/platform.js" async defer></script> 
<script> 
    function onSignIn(googleUser) { 
     var profile = googleUser.getBasicProfile(); 
     console.log(profile); 
     console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead. 
     console.log('Name: ' + profile.getName()); 
     console.log('Image URL: ' + profile.getImageUrl()); 
     console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present. 
     $('#email').val(profile.getEmail()); 
    } 
$('#addScheduler').click(function (e) { 
      var error = ''; 
      var email=$('#email').val(); 
      var pkShareProfileId=$('#pkShareProfileId').val(); 
      var profileName=$('#profileName').val(); 
      var startDate=$('#startDate').val(); 
      var endDate=$('#endDate').val(); 
      var description=$('#description').val(); 
$.ajax({ 
        url: 'schedulerAjax.php', 
        type: 'POST', 
        data: {'pkShareProfileId': pkShareProfileId, 'profileName':profileName, 'startDate':startDate, 'endDate': endDate, 'description': description, 'email': email}, 
        dataType:'json', 
        success: showResponse 
       }); 
} 
</script> 
<form method="POST" id="addSchedulerForm" name="addSchedulerForm" enctype="multipart/form-data"> 
     <div class="row"> 
      <p id="errorMsg"></p> 
      <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
       <input type="hidden" id="pkShareProfileId" name="pkShareProfileId"> 
       <input type="hidden" id="email" name="email"> 
       <div class="form-group"> 
        <div class="checkbox g-signin2"data-onsuccess="onSignIn"> 
         Sync With Google Calendar 
        </div> 
       </div> 
       <div class="form-group"> 
        <label for="profileName" class="boxShadowEffect label-basic">Profile Name</label> 
        <input type="text" class="form-control" id="profileName" placeholder="Profile Name" name="profileName"> 
       </div> 
       <div class="form-group"> 
        <label for="startDate" class="boxShadowEffect label-basic">Start Date</label> 
        <input type="text" class="form-control" id="startDate" placeholder="Start Date" name="startDate"> 
        <div class="form-group"> 
         <label for="endDate" class="boxShadowEffect label-basic">End Date</label> 
         <input type="text" class="form-control" id="endDate" placeholder="End Date" name="endDate"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <label for="description" class="boxShadowEffect label-basic">Description</label> 
        <textarea style="resize:none;" placeholder="Description" id="description" name="description" class="form-control"></textarea> 
       </div> 
       <div class="col-xs-10 col-md-12 col-sm-10 col-lg-12"> 
        <input type="button" class="btn hidden-xs btn-primary btn-block btn-flat save" name="addScheduler" value="Save" id="addScheduler" > 
       </div> 
      </div> 
     </div> 
    </form> 

SchedulerAjax.php

require_once __DIR__ . '/vendor/autoload.php'; 
$client = new Google_Client(); 

$client->setApplicationName("switchit"); 
$service = new Google_Service_Calendar($client); 
$apiCall = new ApiCall(); 
if(isset($_POST)) 
{ 
    $shareProfileId=$_POST['pkShareProfileId']; 
    $profileName=$_POST['profileName']; 
    $startDate=$_POST['startDate']; 
    $startDate=strtotime($startDate); 
    $endDate=$_POST['endDate']; 
    $endDate=strtotime($endDate); 
    $description=$_POST['description']; 
    $email=$_POST['email']; 
    if ($email) { 
    $event = new Google_Service_Calendar_Event(array(
     'summary' => $profileName, 
     'description' => $description, 
     'start' => array(
      'dateTime' => '2017-03-28T00:00:00-07:00', 
      'timeZone' => 'America/Los_Angeles', 
     ), 
     'end' => array(
      'dateTime' => '2017-03-29T00:00:00-07:00', 
      'timeZone' => 'America/Los_Angeles', 
     ) 
    )); 
    $calendarId = 'primary'; 
    $event = $service->events->insert($calendarId, $event); 
} 
+0

quelle est l'erreur exacte que vous voyez. – DaImTo

+0

401- Login requis. –

+0

Cela aiderait si vous pouviez en faire un [mcve]. Sinon, il y a beaucoup de code non pertinent à lire. – dash2

Répondre

0

Vous n'êtes pas authentifié correctement la bibliothèque cliente php. Donc, il n'a pas accès à faire ce que vous essayez de faire.

$client = new Google_Client(); 
$client->setApplicationName(APPLICATION_NAME); 
$client->setScopes(SCOPES); 
$client->setAuthConfig(CLIENT_SECRET_PATH); 
$client->setAccessType('offline'); 

Vous pouvez essayer de vérifier le Calendar PHP quickstart tutorial.

Je ne sais pas s'il est même possible de lier la connexion Google (connexion au client) avec la connexion PHP (côté serveur). J'en doute sérieusement. Vous pouvez envisager d'abandonner PHP et de simplement aller avec JavaScript voir: JavaScript quick start

+0

Je n'ai aucune idée avec ce CLIENT_SECRET_PATH pouvez-vous me s'il vous plaît avec cela. –

+0

J'essaye de m'identifier pour que je puisse ajouter mes événements au calendrier de compte de google ouvert. –

+0

Si vous suivez le didacticiel que j'ai lié à https://developers.google.com/google-apps/calendar/quickstart/php, Google vous explique comment configurer tout cela. – DaImTo