Welcome Guest, Not a member yet? Register   Sign In
Google Calendar
#1

(This post was last modified: 05-28-2022, 09:51 AM by pippuccio76.)

hi this is my controller :
Code:
<?php

namespace App\Controllers;

// https://console.cloud.google.com/apis


use Google\Client as Google_Client;
use Google\Service\Calendar as Google_Service_Calendar ;
use Google\Service\Oauth2 as Google_Service_Oauth2;

class Google_calendar extends BaseController {


    public function login()
    {

        $google_client = new Google_Client();

        $google_client->setAuthConfig(WRITEPATH.'google_calendar/credentials.json');


        $google_client->setRedirectUri( base_url().'/google_calendar/login'); //Define your Redirect Uri

        $google_client->addScope('email');

        $google_client->addScope('profile');

        $google_client->setScopes(Google_Service_Calendar::CALENDAR);


        if(isset($_GET["code"]))
        {
        $token = $google_client->fetchAccessTokenWithAuthCode($_GET["code"]);

        if(!isset($token["error"]))
        {
            $google_client->setAccessToken($token['access_token']);

            session()->set('access_token', $token['access_token']);

            $google_service = new Google_Service_Oauth2($google_client);

            $data = $google_service->userinfo->get();

            $current_datetime = date('Y-m-d H:i:s');


            //insert data
            session()->set('user_data' , array(
              'login_oauth_uid' => $data['id'],
              'first_name'  => $data['given_name'],
              'last_name'  => $data['family_name'],
              'email_address'  => $data['email'],
              'profile_picture' => $data['picture'],
              'created_at'  => $current_datetime
            ));


        }


        }

        $login_button = '';

        if(!session()->get('access_token'))
        {
            $login_button = '<a href="'.$google_client->createAuthUrl().'"><img src="'.base_url().'/asset/sign-in-with-google.png" /></a>';
            $data['login_button'] = $login_button;
            echo view('empty_view',$data);
            echo view('/google/google_login');
        }
        else
        {

            //$data['user_data'] = session()->get('user_data');
            $data=[];

            echo view('empty_view',$data);
            echo view('/google/google_login'); 
        }
    }

    public function logout()
    {
        session()->remove('access_token');

        session()->remove('user_data');

        return redirect()->to('google_calendar/login');
    }

}
And this is my view :

Code:
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Login with Google in Codeigniter</title>
  <meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'/>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
 
</head>
<body>
  <div class="container">
  <br />
  <h2 align="center">Login using Google Account with Codeigniter</h2>
  <br />
  <div class="panel panel-default">
  <?php
  if(!isset($login_button))
  {

    $user_data = session()->get('user_data');
    echo '<div class="panel-heading">Welcome User</div><div class="panel-body">';
    echo '<img src="'.$user_data['profile_picture'].'" class="img-responsive img-circle img-thumbnail" />';
    echo '<h3><b>Name : </b>'.$user_data["first_name"].' '.$user_data['last_name']. '</h3>';
    echo '<h3><b>Email :</b> '.$user_data['email_address'].'</h3>';
    echo '<h3><a href="'.base_url().'/google_calendar_quickstart/logout">Logout</h3></div>';
  }
  else
  {
    echo '<div align="center">'.$login_button . '</div>';
  }
  ?>


     
  </div>
  </div>
</body>
</html>

i have problem with calendar :

Code:
Google\Service\Exception #401
{
"error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"errors": [
{
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"domain": "global",
"reason": "unauthorized"
}
],
"status": "UNAUTHENTICATED"
}
}

if i remove :
Code:
$google_client->setScopes(Google_Service_Calendar::CALENDAR);

I get my google data . How can i manage my calendar ?
Reply




Theme © iAndrew 2016 - Forum software by © MyBB