2012-10-03 62 views
16

我跟着这个basic tutorial,但我得到:谷歌驱动器:redirect_uri_mismatch

Eroare:redirect_uri_mismatch 在请求的重定向URI:金塔:IETF:WG:OAuth的:2.0:OOB不匹配的注册重定向URI

在我的googlings中,我明白我在API控制台中进行的某些设置有些问题。 我启用了Drive API,并在Table API Access中进行了一些设置。我采用客户端ID和客户端密钥,并将这两个值放在客户端源中,但我不知道要在重定向URI中放置什么。

什么应该包含重定向URI?

+1

快速入门指南_完全_忽略了这个关键事实!感谢大家! – Ben

回答

27

URI urn:ietf:wg:oauth:2.0:oob是一个特殊的URI,用于识别浏览器外应用程序,即非web应用程序(桌面,移动设备,命令行等)。

当您创建API控制台中的凭据,请务必选择“安装的应用”作为应用程序类型和重定向的URI将被自动设置为urn:ietf:wg:oauth:2.0:oob和提出请求时,防止“redirect_uri_mismatch”。

+0

根据[文档](https://developers.google.com/accounts/docs/OAuth2InstalledApp#choosingredirecturi),应当在标题中返回响应时使用urn:ietf:wg:oauth:2.0:oob (当客户端无法侦听HTTP端口时很有用)。因此,除了@Claudio所说的内容之外,甚至在浏览器扩展等浏览器内应用中也应该使用这些内容。 – dghubble

+0

您在API控制台中提到的有关“已安装的应用程序”的好事。自从我使用“Web应用程序的客户端ID”后,我遇到了问题。自从我使用“本机应用程序的客户端ID”以来,它现在解决了我的问题。谢谢克劳迪奥。 –

0

对于那些Web应用程序,请将URI定义为您的php url,因为它可以处理令牌并操作谷歌驱动器。

+0

你能解释一下你的意思吗?我不明白你说什么 – Baig

5

的URI

urn:ietf:wg:oauth:2.0:oob 

只适用于已为“安装的应用程序”生成的谷歌客户端ID。

所以要解决你的问题,你必须创建一个新的客户端ID和设置应用程序类型为“安装应用”。在那里你可以得到你需要的ClientId和ClientSecret。

  1. 从左侧栏中创建一个新的项目Here

  2. 选择的API,并确保驱动器SDK是 ON

  3. 转到下面的API Credientials,点击“创建新客户端ID “

  4. 选择已安装的应用程序并键入iOS并提供 Bundle ID(或简单地选择”其他“)

  5. 复制客户端ID &客户端密钥在您的应用程序中使用它。

重定向URI是自动生成的,应该防止你得到的错误。