Fazendo solicitações à API do Google usando Guzzle e Socialite no Laravel 5

Estou criando um aplicativo Web que precisa interagir com a API de contatos do Google e recuperar a lista de contatos do usuário autenticado, mas estou recebendo

ClientException in RequestException.php line 89:
Client error response [url] https://www.google.com/m8/feeds/contacts/[email protected]/full?prettyPrint=false [status code] 403 [reason phrase] Forbidden

Aqui está meu AuthenticateUser.php, onde incluí a função getContactList. Estou tentando fazer a solicitação Guzzle ao servidor do Google e consegui enviar o token de acesso correto, armazenando-o em uma variável de sessão, mas ainda estou sendo proibido resposta :

<?php
namespace App;
use Laravel\Socialite\Contracts\Factory as Socialite;
use App\Repositories\UserRepository;
use Illuminate\Contracts\Auth\Guard;


class AuthenticateUser {

    /**
     * @var UserRepository
     */
    private $users;
    /**
     * @var Socialite
     */
    private $socialite;
    /**
     * @var Guard
     */
    private $guard;

    private $token;

    public function __construct(UserRepository $users, Socialite $socialite, Guard $guard)
    {

        $this->users = $users;
        $this->socialite = $socialite;
        $this->guard = $guard;
    }


    /**
     * @param $hasCode
     * @param AuthenticateUserListener $listener
     * @return mixed
     */
    public function execute($hasCode, AuthenticateUserListener $listener)
    {

        if ( ! $hasCode ) return $this->getAuthorizationFirst();

        $var = $this->getGoogleUser();

        $user = $this->users->findByUsernameOrCreate($var);

        \Session::put('token', $var->token );

        \Auth::login($user, true);

        return $listener->userHasLoggedIn($user);

    }

    public function logout()
    {

        \Auth::logout();

        return redirect('/');


    }

    private function getAuthorizationFirst()
    {

        return \Socialize::with('google')->redirect();

    }

    private function getGoogleUser()
    {

        return \Socialize::with('google')->user();
    }

    public function getContactList()
    {

        $client = new \GuzzleHttp\Client();

        $email = \Auth::user()->email;

        $token = \Session::get('token');

        $json = $client->get('https://www.google.com/m8/feeds/contacts/'. $email . '/full', [
            'query' => [
                'prettyPrint' => 'false',
            ],
            'headers' => [
                'Accept' => 'application/json',
                'Authorization' => 'Bearer ' . $token ,
            ],
        ]);

        dd($json);

        return $json;

    }
}

Aqui está o meu AuthController.php

<?php namespace App\Http\Controllers;

use App\AuthenticateUser;
use App\AuthenticateUserListener;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Two\GoogleProvider as Google;

use Illuminate\Http\Request;

class AuthController extends Controller implements AuthenticateUserListener
{

    public function login(AuthenticateUser $authenticateUser, Request $request){

       return $authenticateUser->execute($request->has('code'), $this);
    }

    public function userHasLoggedIn($user)
    {

        return redirect('/');
    }

    public function logout(AuthenticateUser $authenticateUser){


        return $authenticateUser->logout();

    }

    public function getContactList(AuthenticateUser $authenticateUser)
    {
        $response = $authenticateUser->getContactList();

        dd($response);
    }
}

Aqui está o meu MainController.php

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class MainController extends Controller {


    public function index()
    {
        if (\Auth::check()) return redirect('google_welcome');
        return redirect('google_login');
    }

    public function first()
    {
        return view('google_login');
    }

    public function back()
    {
        $user = \Auth::user();
        return view('google_welcomeback')->with('user', $user);
    }

}

Eu sou bastante novo no universo PHP e Laravel, o que é tentar usar imediatamente APIs e pacotes do Google, como socialite, que está usando oAuth 2. Realmente, lutei para aproveitar ao máximo meu conhecimento limitado e realmente não encontrei muita documentação on-line, e o problema é que meu empregador sugeriu que eu tenho que concluir isso o mais rápido possível ou ele vai me mostrar a saída ...

questionAnswers(2)

yourAnswerToTheQuestion