2013-06-18 53 views
62

我尽量让YouTube的视频上传网页,所以我试图从谷歌API控制台中的客户端ID,并在API控制台就说明是这样的:invalid_client在谷歌的oauth2

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

然而,当我尝试使用下面的URL来测试我的帐户:

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游乐场尝试,也会发生同样的失败

所以,任何人都知道会发生什么?

+6

我发现有时oauth2客户端ID不起作用。我不知道为什么,但是当我打开一个新帐户并再次创建客户端ID时,它可以正常工作。 – Bob

+2

鲍勃是正确的,创建客户端ID解决了这个问题 –

+4

确保复制/粘贴客户端ID时不包括尾随空格。这对我来说是诀窍... – andig

回答

0

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

2

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

98

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

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

+4

谢谢!我得到错误“”错误:invalid_client。 “今天浪费了几个小时的时间,但是刚刚更新了产品名称,并且嘿-presto,问题得到了解决,那个错误是* so *误导性的 – IanB

+2

什么是产品名称? –

+4

它是在同意的情况下你必须填写'PRODUCT NAME'字段 –

7

在这个线程我找到了我的答案。

  1. 我去谷歌控制台,
  2. 产生一个新的项目,取得刷新,因为在我的情况下创建的页面没有加载后
  3. 选择新项目
  4. 创建客户端ID
  5. 使用它你需要什么

感谢球员:d

16

在Google开发人员控制台的同意屏幕中设置电子邮件地址和产品名称,可解决“错误:invalid_client”错误。 “对我来说,”

4

在我的情况下,这竟然是别的东西,即我的代码使用了一个环境变量,没有正确设置(愚蠢地没有被我的代码检查)。设置它,重新编译的资产,并重新启动应用程序并获得成功。

4

我在ID有.apps.googleusercontent.com两次。

这是一个复制和粘贴的问题“你的ID HERE” .apps。 googleusercontent.com

+4

矿是两端留下的空白处:/ – Christian

0

在证书 接受来自这些HTTP引用者(网站)的请求(可选) 使用星号作为通配符。如果您保留这个空白,请求将被任何引用者接受。请务必在生产中使用此密钥之前添加推荐人。 Add (星星点)。它的工作对我罚款

47

从谷歌网页UI复制值之后,我有一个空格为:

  • client_id
  • secret

,并在BEGINNING,并在END

+2

此问题仍然存在:P – Abhinay

+1

令人难以置信,即使点击API控制台中的“复制”按钮......您会认为Google的开发人员区域对空白敏感! – Reisclef

+0

这里也不可思议。删除字符串两边的额外空格。然后,如果在遵循所有在这里所说的话之后,没有任何工作仍然有效,请删除应用程序/项目并重新创建它,因为可能存在缓存问题。 – ifelsemonkey

0

我意外地在URL的Client Secret部分中有值,但Google Credential不需要Android OAuth 2客户端ID的客户端密钥。只需在URL中留下空白值对我来说是个诀窍。

24

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

Client ID and Client Secret

设置都为在OAuth同意画面中的电子邮件地址和产品名称字段。

OAuth Consent Screen Configuration

+0

这一直使我疯狂,这是我的修复。谢谢。 – Qsiris

+1

你可能不应该把你的客户的秘密暴露在这样​​的答案中。 – Fernando

+1

@Fernando这是一个扔掉的帐户。 –

1

可能太旧凭证无效

见下文

stackoverflow answer

或短的名字,答案可能工作

见下文 stackoverflow answer

答案

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

回答有时一个可包括在

检查额外空间的两倍此行,您将被重定向到正确的网址

0

适用于我的步骤:

  1. 删除不适合您的凭证
  2. 创建OAuth同意画面上一些NAME新凭证
  3. 填写同名
  4. 填写电子邮件地址在OAuth同意画面

的名称应该是完全一样的。

2

invalid_client也可以简单地表示在创建Oauth2对象时,您的客户端ID和客户端密钥错误。

2

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

+0

您的先生/女士是一个传奇!我从Heroku环境变量中删除了引号。 – grabury

0

另一件事来检查:

当您安装GoogleAPIs与一的NuGet NET应用程序,它会在你* config文件注入了一组新的虚拟价值。

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

0

我解决我的问题与装饰:

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

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