缺少必需参数:范围(使用PHP时的Google标识)

时间:2017-04-23 07:49:16

标签: php

我开始使用社交帐户编写注册页面。 我试过facebook成功的工作。 当我尝试谷歌签署时,它向我显示此错误。

400. That’s an error.

Error: invalid_request

Missing required parameter: scope

Learn more

Request Details
response_type=code
redirect_uri=http://localhost/school/g.php
client_id=80808106457-e2fmm4s2dhqc5eo94nv2l84thjn6hqvl.apps.googleusercontent.com
scope=
access_type=offline
approval_prompt=force

有人请帮助我。这是我的PHP代码

<?php
session_start();

// Include Google client library
include_once 'src/Google_Client.php';
include_once 'src/auth/Google_OAuth2.php';
/*
 * Configuration and setup Google API
 */
$clientId     = 'XXXXXXXXXXXXXXXXXXXXXX';
$clientSecret = 'XXXXXXXXXXXXXXXX';
$redirectURL  = 'http://localhost/school/g.php';

//Call Google API
$gClient = new Google_Client();
$gClient->setApplicationName('school');
$gClient->setAccessType("offline");
$gClient->setClientId($clientId);
$gClient->setClientSecret($clientSecret);
$gClient->setRedirectUri($redirectURL);

$google_oauthV2 = new Google_OAuth2($gClient);
?>

2 个答案:

答案 0 :(得分:1)

您必须声明您希望访问的范围,例如,Gmail允许离线访问的最高权限范围:

$gClient->addScope('https://mail.google.com/');

明智地选择正确的范围时,客户端会看到您尝试访问的范围,并决定是否批准(在用户同意屏幕上完成)。

范围列表 - https://developers.google.com/identity/protocols/googlescopes

答案 1 :(得分:1)

对我来说,将“ / auth / google?scope = email”添加到锚标记是可行的。 希望这会对某人有所帮助。