Oauth2 Instagram API“重定向 URI 与注册的重定向 URI 不匹配”

Posted

技术标签:

【中文标题】Oauth2 Instagram API“重定向 URI 与注册的重定向 URI 不匹配”【英文标题】:Oauth2 Instagram API "redirect URI does not match registered redirect URI" 【发布时间】:2013-05-14 07:47:50 【问题描述】:

我正在开发一个处于开发模式的 Rails 应用程序,它可以向omniauth 注册。

主持人是

http://localhost:3000/

我正在使用宝石:

gem 'omniauth'
gem 'omniauth-foursquare'
gem 'omniauth-instagram'

当我通过 omniauth 向 Foursquare 注册时,完全没有问题。所有设置都是正确的,我在 Foursquare 开发者设置中的 redirect_uri 等于主机 (localhost:3000)

但是,如果我在 Instagram 客户端管理器中填写完全相同的 redirect_uri (localhost:3000)*。 Instagram 给了我这个:


 "code": 400,
 "error_type": "OAuthException",
 "error_message": "Redirect URI does not match registered             redirect URI"

基于此网址:

https://instagram.com/oauth/authorize?response_type=code&client_id=<ID>&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Finstagram%2Fcallback&state=18415adf24dd97873e61094f67c0fb7a94857fedf93e9d2e&scope=basic

*

根据 Instagram,我做错了什么,应该如何解决?

【问题讨论】:

自己解决了这个问题。将localhost:3000/auth/instagram/callback 添加为redirect_uri,它工作得很好。 请将您的评论添加为答案并将问题标记为已回答。 【参考方案1】:

自己解决了这个问题。将localhost:3000/auth/instagram/callback 添加为redirect_uri,效果很好。

【讨论】:

我必须添加 /users/auth/instagram/callback 有趣的是 auth/instagram/callback 这实际上有效,有没有想过这是什么原因? 我也面临同样的问题。你能帮帮我吗? 尝试不使用端口,我在我的节点应用程序中设置了一个实际路由并最终将其设置为localhost/instagram/callback,并返回了结果。【参考方案2】:

我需要添加

http://localhost:3000/users/auth/instagram/callback

作为我的回调 URI,因为我正在使用 Devise。

【讨论】:

【参考方案3】:

当您指定重定向 URI 时,http://localhost:3000 与 http://localhost:3000/ 不同(注意尾部斜杠)。

确保回调 URI 完全匹配。

【讨论】:

这就是答案,别看别处了。 :)【参考方案4】:

对于 Drupagram 模块 (Drupal 7) 添加:http://localhost:3000/instagram/oauth as redirect_uri

【讨论】:

【参考方案5】:

对于遇到此问题且提供给 instagram 的重定向 uri 与您使用的完全相同的任何人,我发现有些用户在我的 instagram api 中输入我的网站地址为http://www.example.com/loginhttp://example.com/login

然后我创建了一个 php 脚本来检测字符串 www 是否存在于我的 url 中,然后重新加载到同一页面但没有 www

if(strpos($_SERVER['HTTP_HOST'], 'www.') !== FALSE) 
    header("Location: ".str_replace('www.', '', $_SERVER['HTTP_HOST'].'/'.$_SERVER['REQUEST_URI']));

【讨论】:

【参考方案6】:

问题:Oauth2 Instagram API“重定向 URI 与注册的重定向 URI 不匹配

我的解决方案:请检查 ng-cordova-oauth.js 文件并检查其中的 instagram 功能。验证 redirect_uri 的值是否与在 Instagram 开发者控制台上注册您的应用程序相同。如果相同,则可以正常工作,否则会出现上述问题。

【讨论】:

【参考方案7】:

"error_type": "OAuthException", "code": 400, "error_message": "重定向 URI 与注册的重定向 URI 不匹配"

如何从 Instagram 获取访问令牌

在instagramhttps://www.instagram.com/developer/注册沙盒客户端api时,您的网站url必须相同

这里我们使用了网址:https://adlivetech.com 有效的重定向 URI:https://adlivetech.com/

对于实时网站,您可以使用https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token轻松获取访问令牌

将上面的“CLIENT-ID”网址替换为您的客户 ID 替换上面的网址“REDIRECT-URI”重定向网址应该是你的域名,如:http://adlivetech.com

https://adlivetech.com/access_token=YOUR_ACCESS_TOken

【讨论】:

【参考方案8】:

我在这个问题上搞砸了好久.. 也许它已经改变了,但是: http://localhost:3000/users/auth/instagram/int_callback 是最终对我有用的回调 URI。 我遇到的唯一问题是它完全是一个不正确的回调 uri,希望我在这里看到我应该专注于我的 Instagram 设置而不是修改我的代码.. 获取错误消息意味着其他一切都在工作(到目前为止),否则您将不会收到该特定错误消息。 祝你好运!! - 不要分心!

【讨论】:

【参考方案9】:

这不是特定于 ruby​​ 的,但对于其他与此搏斗的人来说,这就是让我通过它的原因(注意:以上答案中没有任何东西对我有用):

1. Edit your Client on Instagram Developer and uncheck Disable implicit OAuth. 2. Click Update Client to save it. 3. Now go to https://instagram.com/oauth/authorize/?client_id=[CLIENT_ID]&amp;redirect_ur.... Just change [CLIENT_ID] and [REDIRECT_URI] with their values. 4. After that you will be redirected to [REDIRECT_URI]/#access_token=[ACCESS_TOKEN]. Get it and place it on the Instagram Access Token textbox.

(来源:https://www.drupal.org/project/instagram_feeds/issues/2140479)

【讨论】:

请您详细说明第 4 点。我已经完成了第 3 点【参考方案10】:

...或者您可以按照此处的说明进行操作:

https://instagram.com/developer/authentication/?hl=en

请参阅“第一步:将您的用户引导至我们的授权 URL”部分。

只需提供您的 CLIENT_ID 和 REDIRECT_URI。

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

【讨论】:

以上是关于Oauth2 Instagram API“重定向 URI 与注册的重定向 URI 不匹配”的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法阻止硒被重定向到登录?不使用 api 抓取 Instagram

在未登录浏览器连接 Instagram 时,OAuth Instagram API 删除重定向 URL 中的参数

如何获取 URL Scheme myapp:// 以使用 Instagram API 重定向 uri

使用 Oauth2 在 Instagram 上发布图片 - PHP

Instagram API 阻止在成功登录后重定向到 iOS 应用程序并出现 400 错误请求错误

是否可以使用OAuth2 API发布请求设置“重定向URI”? [关闭]