向Controller发送Google API OAuth2响应[关闭]

I am new to CodeIgniter and PHP. Redirect URL given in Google API Console:

Redirect URIs:  http://localhost/testsaav/index.php/main/gmail_invite

Following code shows me Request For Permission page. When I click Allow Access it takes me to

http://localhost/testsaav/index.php/main/gmail_invite?code=4/CXD462cen-oEBe1GaHIH90hjqb2X.QpVsg7mG4AUXaDn_6y0ZQNgaCVLxeAI

I want to redirect it to another page and show the response there. Controller method

function gmail_invites($data)
{
   $this->load->view('socialInvites2',$data);

}

View implementation

<?php 
            require_once APPPATH.'libraries/Google_Client.php';
            session_start();
            $client = new Google_Client();
            $client->setApplicationName('Google Contacts PHP Sample');
            $client->setScopes("http://www.google.com/m8/feeds/");
            $client->setClientId('xxx.apps.googleusercontent.com');
            $client->setClientSecret('xxx-xxx');
            $client->setRedirectUri('http://localhost/testsaav/index.php/main/gmail_invite');

            if (isset($_GET['code'])) {
              $client->authenticate();
              $_SESSION['token'] = $client->getAccessToken();
              $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
              header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
            }

            if (isset($_SESSION['token'])) {
             $client->setAccessToken($_SESSION['token']);
            }

            if (isset($_REQUEST['logout'])) {
              unset($_SESSION['token']);
              $client->revokeToken();
            }

            if ($client->getAccessToken()) {
              $req = new Google_HttpRequest("https://www.google.com/m8/feeds/contacts/default/full");
              $val = $client->getIo()->authenticatedRequest($req);
              //$xml = simplexml_load_string($val->getResponseBody());
              //$result = $xml->xpath('//gd:email');

              /*foreach ($result as $title) {
                echo $title->attributes()->address . "<br>";
              }*/
              // The contacts api only returns XML responses.
              $response = json_encode(simplexml_load_string($val->getResponseBody()));
              //print "<pre>" . print_r(json_decode($response, true), true) . "</pre>";

              // The access token may have been updated lazily.
              $_SESSION['token'] = $client->getAccessToken();
            } else {
              $auth = $client->createAuthUrl();
            }

            print "<a class='facebook-button' id='facebookbutton' href='$auth'>
            <span class='fb-button-left'></span>
            <span class='fb-button-center'>Invite GMail Friends</span>
            <span class='fb-button-right'></span></a>"; ?>
            <br/>

Why do you have all that php code in your view? That's not how MVC works.

Logic code should be kept in your Controller and not your View. I suggest that you use a Codeiginter OAuth2 library because the original code from Google's OAuth2 lib isn't meant to be compatible with Codeiginter or any other particular MVC framework. For example you could use this one: https://github.com/philsturgeon/codeigniter-oauth2

You're being redirected to the correct controller because the url is set here:

$client->setRedirectUri('http://localhost/testsaav/index.php/main/gmail_invite');

Also take a look at Codeigniter's redirect method: redirect('somecontroller/some_method')