17

我正在开发一个处于开发模式的 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,我做错了什么,应该如何解决?

4

10 回答 10

24

自己解决了这个问题。添加localhost:3000/auth/instagram/callback为redirect_uri,它工作得很好。

于 2013-10-01T08:31:49.237 回答
8

我需要添加

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

作为我的回调 URI,因为我使用的是设计。

于 2014-12-12T21:19:14.397 回答
8

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

确保回调 URI 完全匹配。

于 2017-07-13T22:22:58.943 回答
0

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

于 2014-04-09T05:58:51.117 回答
0

对于遇到此问题并且提供给 instagram 的重定向 uri 与您使用的完全相同的任何人,我发现有些用户正在输入我的网站地址,就像http://www.example.com/login在我的 instagram api 中一样http://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']));
}
于 2015-03-02T15:31:39.617 回答
0

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

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

于 2016-08-09T14:28:55.433 回答
0

{“error_type”:“OAuthException”,“code”:400,“error_message”:“重定向 URI 与注册的重定向 URI 不匹配”}

如何从 Instagram 获取访问令牌

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

这里我们使用了网站 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轻松获取访问令牌

将上面的 url "CLIENT-ID" 替换为您的客户端 ID 替换上面的 url "REDIRECT-URI" 重定向 url 应该是您的域名,例如:http ://adlivetech.com

https://adlivetech.com/access_token=YOUR_ACCESS_TOken

于 2017-08-10T06:22:25.200 回答
0

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

于 2018-04-19T01:11:53.297 回答
0

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

  • 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]&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 )

于 2018-05-24T14:40:52.170 回答
-1

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

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
于 2015-07-14T22:39:04.557 回答