• <i id='gPvWs'><tr id='gPvWs'><dt id='gPvWs'><q id='gPvWs'><span id='gPvWs'><b id='gPvWs'><form id='gPvWs'><ins id='gPvWs'></ins><ul id='gPvWs'></ul><sub id='gPvWs'></sub></form><legend id='gPvWs'></legend><bdo id='gPvWs'><pre id='gPvWs'><center id='gPvWs'></center></pre></bdo></b><th id='gPvWs'></th></span></q></dt></tr></i><div id='gPvWs'><tfoot id='gPvWs'></tfoot><dl id='gPvWs'><fieldset id='gPvWs'></fieldset></dl></div>
  • <small id='gPvWs'></small><noframes id='gPvWs'>

  • <legend id='gPvWs'><style id='gPvWs'><dir id='gPvWs'><q id='gPvWs'></q></dir></style></legend>

  • <tfoot id='gPvWs'></tfoot>

      <bdo id='gPvWs'></bdo><ul id='gPvWs'></ul>

        从 Google OAuth 2.0 PHP API 获取用户信息

        时间:2023-10-02
            <i id='rkdpf'><tr id='rkdpf'><dt id='rkdpf'><q id='rkdpf'><span id='rkdpf'><b id='rkdpf'><form id='rkdpf'><ins id='rkdpf'></ins><ul id='rkdpf'></ul><sub id='rkdpf'></sub></form><legend id='rkdpf'></legend><bdo id='rkdpf'><pre id='rkdpf'><center id='rkdpf'></center></pre></bdo></b><th id='rkdpf'></th></span></q></dt></tr></i><div id='rkdpf'><tfoot id='rkdpf'></tfoot><dl id='rkdpf'><fieldset id='rkdpf'></fieldset></dl></div>
                <legend id='rkdpf'><style id='rkdpf'><dir id='rkdpf'><q id='rkdpf'></q></dir></style></legend>
                  <tbody id='rkdpf'></tbody>
                <tfoot id='rkdpf'></tfoot>

                <small id='rkdpf'></small><noframes id='rkdpf'>

                • <bdo id='rkdpf'></bdo><ul id='rkdpf'></ul>

                  本文介绍了从 Google OAuth 2.0 PHP API 获取用户信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我正在尝试使用 Google Oauth API 来获取用户信息.它非常适合 Google Plus API,但我正在尝试创建备份,以防用户没有 google plus 帐户.身份验证过程是正确的,我什至获得了 $userinfo 对象,但我究竟如何访问这些属性.我试过 $userinfo->get() 但它只返回用户的 id.

                  我做错了吗?这是我正在使用的代码...

                  require_once '../../src/Google_Client.php';require_once '../../src/contrib/Google_Oauth2Service.php';session_start();$client = new Google_Client();$client->setApplicationName("Google+ PHP Starter Application");//访问 https://code.google.com/apis/console 生成您的//oauth2_client_id、oauth2_client_secret,并注册您的 oauth2_redirect_uri.$client->setClientId('*********************');$client->setClientSecret('****************');$client->setRedirectUri('***************');$client->setDeveloperKey('**************');$plus = new Google_Oauth2Service($client);如果(isset($_REQUEST ['注销'])){未设置($_SESSION['access_token']);}如果(isset($_GET['代码'])){$client->authenticate($_GET['code']);$_SESSION['access_token'] = $client->getAccessToken();header('位置:http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);}如果(isset($_SESSION['access_token'])){$client->setAccessToken($_SESSION['access_token']);}if ($client->getAccessToken()){$userinfo = $plus->userinfo;print_r($userinfo->get());} 别的{$authUrl = $client->createAuthUrl();}?><!doctype html><头><meta charset="utf-8"><link rel='stylesheet' href='style.css'/><身体><header><h1>Google+ 示例应用</h1></header><div class="box"><?php if(isset($personMarkup)): ?><div class="me"><?php print $personMarkup ?></div><?php endif ?><?php如果(isset($authUrl)){print "<a class='login' href='$authUrl'>连接我!</a>";} 别的 {打印 "<a class='logout' href='?logout'>Logout</a>";}?>

                  谢谢...

                  **编辑***缺少范围--已添加

                   $client->setScopes(array('https://www.googleapis.com/auth/userinfo.email','https://www.googleapis.com/auth/userinfo.profile'));

                  现在工作...

                  解决方案

                  缺少作用域

                  $client->setScopes(array('https://www.googleapis.com/auth/userinfo.email','https://www.googleapis.com/auth/userinfo.profile'));

                  现在就像一个魅力!

                  I am trying to use Google Oauth API to get userinfo. It works perfectly for Google Plus API but I am trying to create a backup in case the user doesn't have google plus account. The authentication process is correct and I even get the $userinfo object but how exactly do I access the properties. I tried $userinfo->get() but it only return the id of the user.

                  Am I doing something wrong? Here is the code that I am using...

                  require_once '../../src/Google_Client.php';
                  require_once '../../src/contrib/Google_Oauth2Service.php';
                  
                  session_start();
                  
                  $client = new Google_Client();
                  $client->setApplicationName("Google+ PHP Starter Application");
                  // Visit https://code.google.com/apis/console to generate your
                  // oauth2_client_id, oauth2_client_secret, and to register your oauth2_redirect_uri.
                   $client->setClientId('*********************');
                   $client->setClientSecret('**************');
                   $client->setRedirectUri('***************');
                   $client->setDeveloperKey('**************');
                  $plus = new Google_Oauth2Service($client);
                  
                  if (isset($_REQUEST['logout'])) {
                    unset($_SESSION['access_token']);
                  }
                  
                  if (isset($_GET['code'])) {
                    $client->authenticate($_GET['code']);
                    $_SESSION['access_token'] = $client->getAccessToken();
                    header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
                  }
                  
                  if (isset($_SESSION['access_token'])) {
                    $client->setAccessToken($_SESSION['access_token']);
                  }
                  
                  if ($client->getAccessToken()) 
                  {
                      $userinfo = $plus->userinfo;
                      print_r($userinfo->get());
                  
                  } else 
                  {
                      $authUrl = $client->createAuthUrl();
                  }
                  ?>
                  <!doctype html>
                  <html>
                  <head>
                    <meta charset="utf-8">
                    <link rel='stylesheet' href='style.css' />
                  </head>
                  <body>
                  <header><h1>Google+ Sample App</h1></header>
                  <div class="box">
                  
                  <?php if(isset($personMarkup)): ?>
                  <div class="me"><?php print $personMarkup ?></div>
                  <?php endif ?>
                  
                  <?php
                    if(isset($authUrl)) {
                      print "<a class='login' href='$authUrl'>Connect Me!</a>";
                    } else {
                     print "<a class='logout' href='?logout'>Logout</a>";
                    }
                  ?>
                  </div>
                  </body>
                  </html>
                  

                  Thanks...

                  **EDIT*** Was missing Scopes--Added

                   $client->setScopes(array('https://www.googleapis.com/auth/userinfo.email','https://www.googleapis.com/auth/userinfo.profile'));
                  

                  works now...

                  解决方案

                  Was missing scopes

                  $client->setScopes(array('https://www.googleapis.com/auth/userinfo.email','https://www.googleapis.com/auth/userinfo.profile'));
                  

                  Works like a charm now!

                  这篇关于从 Google OAuth 2.0 PHP API 获取用户信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:实现 Oauth2 登录,致命错误:找不到“Google_Servic 下一篇:OAuth2.0 Server stack如何使用state来防止CSRF?对于dra

                  相关文章

                  最新文章

                  <small id='HSlyv'></small><noframes id='HSlyv'>

                      <tfoot id='HSlyv'></tfoot>

                      <i id='HSlyv'><tr id='HSlyv'><dt id='HSlyv'><q id='HSlyv'><span id='HSlyv'><b id='HSlyv'><form id='HSlyv'><ins id='HSlyv'></ins><ul id='HSlyv'></ul><sub id='HSlyv'></sub></form><legend id='HSlyv'></legend><bdo id='HSlyv'><pre id='HSlyv'><center id='HSlyv'></center></pre></bdo></b><th id='HSlyv'></th></span></q></dt></tr></i><div id='HSlyv'><tfoot id='HSlyv'></tfoot><dl id='HSlyv'><fieldset id='HSlyv'></fieldset></dl></div>
                        <bdo id='HSlyv'></bdo><ul id='HSlyv'></ul>

                      <legend id='HSlyv'><style id='HSlyv'><dir id='HSlyv'><q id='HSlyv'></q></dir></style></legend>