【问题标题】:Why google calendar permission is optional in consent screen为什么谷歌日历权限在同意屏幕中是可选的
【发布时间】:2021-12-26 04:34:02
【问题描述】:

我的应用需要 google 日历范围,但在同意屏幕中,此权限是可选的,默认情况下未选中,因此许多用户错过了该部分。

我怎样才能使它成为这样的强制范围?

这是我生成验证网址的代码:

$client = new Google_Client();
$client->setApplicationName(config('app_name'));
$client->setScopes([
    Google_Service_Calendar::CALENDAR,
    'profile',
    'email'
]);
$client->setAuthConfig(config('credentials.google'));
$client->setAccessType('offline');
$client->setPrompt('select_account consent');

return $client->createAuthUrl();

奇怪的是,如果我删除“个人资料”和“电子邮件”范围,它会按预期工作,但我还需要这些范围在注册期间获取用户的电子邮件和姓名。

此外,我的应用已通过 google 验证,其他功能(如读取用户事件等)运行良好。

与我的问题最近的话题是here。但接受的答案是“用户将能够单独授予或拒绝权限。”

第二张图片背后的诀窍是什么?

【问题讨论】:

    标签: php google-calendar-api


    【解决方案1】:

    这是这种情况下的预期行为,因为这些是 Google 针对 OAuth 和 API 实施的新细化权限。

    仍在推出的新功能默认未选中复选框,因此执行应用程序的用户必须手动选择这些复选框,并且无法关闭此功能。

    参考

    【讨论】:

    • 但是Calendly 是怎么做到的呢?
    • 我还检查了从 Calendly 创建的身份验证网址。它有以下参数: ?access_type=offline&client_id=....&include_granted_scopes=true&prompt=select_account%20consent&redirect_uri=....&response_type=code&scope=email%20profile%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar&state=注册&flowName=GeneralOAuthFlow
    猜你喜欢
    • 2018-12-25
    • 2011-04-27
    • 2018-05-26
    • 2016-04-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    相关资源
    最近更新 更多