google oauth2中的invalid_client

时间:2013-06-18 10:41:43

标签: google-oauth google-data-api oauth2-playground

我尝试为youtube视频上传制作网页,因此我尝试从google api控制台获取客户端ID,并在api控制台中显示如下内容:

Client ID: 533832195920.apps.googleusercontent.com
Redirect URIs: http://bobyouku.ap01.aws.af.cm/testyoutube.php
https://developers.google.com/oauthplayground

但是,当我尝试使用以下网址测试我的帐户时:

https://accounts.google.com/o/oauth2/auth?client_id=533832195920.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Fbobyouku.ap01.aws.af.cm%2Ftestyoutube.php&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube&response_type=code&access_type=offline

它给出了invalid_client的结果。即使我在oauth2操场上尝试它,也会发生同样的失败

所以谁知道发生了什么?

24 个答案:

答案 0 :(得分:107)

设置/更改您的产品名称,我遇到此问题,直到我创建的产品名称与项目名称相同。

可以在Google Developers Console的“同意”屏幕部分为您的项目设置产品名称。查看API&在左侧导航栏中输入验证并选择同意屏幕。 您还需要在产品名称上方的框中设置您的电子邮件地址。

答案 1 :(得分:62)

从Google网页界面复制值后,我有一个空格:

  • client_id
  • secret

BEGINNING END 两者。

答案 2 :(得分:37)

修剪client_idclient_secret的前导和尾随空格。 Google的复制按钮不会为您执行此操作。

enter image description here

为OAuth许可屏幕设置电子邮件地址和产品名称字段。

enter image description here

答案 3 :(得分:16)

在Google开发者控制台的同意屏幕中设置电子邮件地址和产品名称,解决错误"错误:invalid_client。找不到OAuth客户端。"为了我。

答案 4 :(得分:9)

我的ID中有两次.apps.googleusercontent.com。

这是一个复制和粘贴问题"您的ID在这里" .apps.googleusercontent.com

答案 5 :(得分:7)

在这个主题中,我找到了答案。

  1. 我去了google console,
  2. 生成一个新项目,进行刷新,因为在我的情况下创建页面后没有重新加载
  3. 选择新项目
  4. 创建客户端ID
  5. 将其用于您需要的内容
  6. 谢谢你们:D

答案 6 :(得分:6)

invalid_client也可能只是意味着在创建Oauth2对象时您的客户端ID和客户端密钥错误。

答案 7 :(得分:5)

在我的情况下,这结果是其他的东西,即我的代码使用了一个未正确设置的环境变量(并且我的代码没有愚蠢地检查)。设置它,重新编译资产,然后重新启动应用程序就可以了。

答案 8 :(得分:4)

我通过从clientID和clientSecret值中删除不必要的引号来解决这个问题。

答案 9 :(得分:2)

错误是否也报告它缺少应用程序名称?在项目设置对话框中创建项目名称(例如“Project X”)之前,我遇到了这个问题。

答案 10 :(得分:2)

可能旧凭据无效

见下面的答案

stackoverflow answer

或短名称可能有效

请参阅下面的答案 stackoverflow answer

或与已经回答的项目名称相同的产品名称

有时可能会在

中包含额外的空格

检查此行两次,以便重定向到正确的网址

答案 11 :(得分:1)

我用trim解决了我的问题:

'google' => [
    'client_id' =>trim('client_id),
    'client_secret' => trim('client_secret'),
    'redirect' => 'http://localhost:8000/login/google/callback',
],

答案 12 :(得分:1)

如果您遵循文档,请从此页面 https://developers.google.com/identity/sign-in/web/sign-in#specify_your_apps_client_id

您会看到

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">

但这是错误的。应该是

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID">

问题是无论如何都添加了“ .apps.googleusercontent.com”。如果您按照文档中的说明进行操作,则会两次获得“ .apps.googleusercontent.com”

答案 13 :(得分:0)

我没有工作,因为我是从文档中的按钮创建的。我再次访问该项目并创建了另一个OAuthClientID。有效。是的,请注意右侧和左侧的额外空间。

答案 14 :(得分:0)

我希望我以前看过这篇文章,因为有很多事情我必须找出反复试验的地方。这可能会出错。这是我遇到的另一个问题:

在指定“授权Javascript”起源或“授权重定向URI”时,请确保包含带有和不带有www的域。所以https://google.comhttps://www.google.com

我还上传了一个应用程序徽标。因此,同意屏幕需要进行审查...这需要花费很长时间。不要上传应用程序徽标,或者要耐心等待。

答案 15 :(得分:0)

为获得最佳效果,请确保您具有以下详细信息:

{"client_id":"282324738-4labcgdsd4nlh34885s2d34tmi.apps.googleusercontent.com","project_id":"abcd23ss-212808","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://www.googleapis.com/oauth2/v3/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"23452-dfgdfgcdfgfd","redirect_uris":["http://localhost:6900/auth/google/callback"],"javascript_origins":["http://localhost:6900"]}

此数据始终可以从https://console.developers.google.com/apis/credentials/oauthclient/的JSON中下载。

答案 16 :(得分:0)

如果您使用的是Meteor JS,则必须使用 clientId 代替 appId

由于facebook使用appId和google clientId。

ServiceConfiguration.configurations.upsert({
    service: "google"
}, {
    $set: {
        clientId: process.env.OAUTH_GOOGLE_APP_ID,
        loginStyle: "popup",
        secret: process.env.OAUTH_GOOGLE_SECRET
    }
});

我花了几个小时才意识到这一点。

答案 17 :(得分:0)

在Google API控制台上检查您的项目名称。 你选择你创建的另一个项目。 我是同样的错误。 我的错误在于选择不同的项目。

答案 18 :(得分:0)

删除客户ID并创建新客户ID几次为我工作。

答案 19 :(得分:0)

以下都不是我的问题 - 我通过打开隐身窗口解决了这个问题。有些东西显然是在某处缓存的,没有任何改变的auth客户端设置有帮助,并且配置值中从未有过任何尾随或前导空格。

答案 20 :(得分:0)

要检查的另一件事:

当您使用NuGet将GoogleAPI安装到.Net应用中时,它会在您的* .config文件中注入一组新的虚拟值。

检查是否仍有原始值,并删除虚拟条目。

答案 21 :(得分:0)

对我有用的步骤:

  1. 删除不适合您的凭据
  2. 使用某些NAME
  3. 创建新凭据
  4. 在OAuth同意屏幕上填写相同的NAME
  5. 在OAuth同意屏幕上填写电子邮件地址
  6. 名称应完全相同。

答案 22 :(得分:0)

我意外地在网址的客户端密钥部分中有值,但Google Credential不需要Android OAuth 2客户端ID的客户端密钥。只需在URL中留空值就可以解决这个问题。

答案 23 :(得分:0)

在Credentials 接受来自这些HTTP引用者(网站)的请求(可选) 使用星号表示通配符。如果您将此留空,则会从任何推荐人接受请求。在生产中使用此密钥之前,请务必添加引用。 添加(星点星)。它适用于我