php - error: Undefined property while fetching data from Google analytics -


i'm facing problems fetching data (profile list specific) google analytics. credentials client_id, secret etc in place , allow user login successfully, i'm stuck in next step need fetch list of profiles (list of websites). did go through official docs per google views (profiles): list while try it, error:

undefined property: app\http\controllers\usercontroller::$analytics

the detailed error:

in usercontroller.php line 84 @ handleexceptions->handleerror('8', 'undefined property: app\http\controllers\usercontroller::$analytics', 'c:\xampp\htdocs\laravel projects\testapp\app\http\controllers\usercontroller.php', '84', array('request' => object(request), 'google_redirect_url' => 'http://localhost:8000/glogin', 'gclient' => object(google_client), 'google_oauthv2' => object(google_service_oauth2), 'guser' => null, 'user' => object(user), 'token' => array('access_token' => 'token goes here', 'token_type' => 'bearer', 'expires_in' => '3600', 'id_token' => 'id_token goes here', 'created' => 'created data goes here'))) in usercontroller.php line 84

i understand there's error when try fetch data, don't understand how should doing that. has idea? please help!

here's controller

 class usercontroller extends controller {   public function googlelogin(request $request)  {     $google_redirect_url = route('glogin');     $gclient = new \google_client();     $gclient->setapplicationname(config('services.google.app_name'));     $gclient->setclientid(config('services.google.client_id'));     $gclient->setclientsecret(config('services.google.client_secret'));     $gclient->setredirecturi($google_redirect_url);     $gclient->setdeveloperkey(config('services.google.api_key'));      $gclient->addscope(\google_service_analytics::analytics_readonly);     $gclient->addscope("email");     $gclient->addscope("profile");     $gclient->setaccesstype("offline");     $google_oauthv2 = new \google_service_oauth2($gclient);     if ($request->get('code')){         $gclient->authenticate($request->get('code'));         $request->session()->put('token', $gclient->getaccesstoken());     }     if ($request->session()->get('token'))     {         $gclient->setaccesstoken($request->session()->get('token'));     }     if ($gclient->getaccesstoken())     {         //for logged in user, details google using access token         $guser = $google_oauthv2->userinfo->get();          $request->session()->put('name', $guser['name']);         if ($user =user::where('email',$guser['email'])->first())         {           }else{             //register user response data              return user::create([                 'name' => $guser->name,                 'email' => $guser->email,             ]);         }          //line no 84 below:         $profiles = $this->analytics->management_profiles             ->listmanagementprofiles();         $accounts = $accountsobject->getitems();          return $accounts;         //return redirect()->route('user.glist');     } else     {         //for guest user, google login url      }    } } 

you calling $this->analytics define property analytics usercontroller class. not sure defined in parent class controller pretty sure agnostic of analytics service object.

you need instantiate google_service_analytics object.

// create authorized analytics service object. $analytics = new google_service_analytics($gclient); 

see hello analytics guide details.


Comments