web-dev-qa-db-ja.com

Oauth2 Instagram API「リダイレクトURIが登録済みリダイレクトURIと一致しません」

開発モードにあり、omniauthに登録できるRailsアプリケーションで作業しています。

ホストは

http://localhost:3000/

私は宝石を使用しています:

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

Omn​​iauthを使って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"
}

このURLに基​​づいて:

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

enter image description here

Instagramによると、私は何を間違っているのですか?これをどのように修正する必要がありますか?

16
Biketire

自分で問題を修正しました。 redirect_uriとしてlocalhost:3000/auth/instagram/callbackを追加しましたが、うまくいきました。

24
Biketire

私は追加する必要がありました

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

deviseを使用しているため、コールバックURIとして。

8
rubygrrl42

リダイレクトURIを指定する場合 http:// localhost:30http:// localhost:3000 / (末尾のスラッシュに注意)と同じではありません。

コールバックURIが正確に一致することを確認してください。

6
Dylan Fisher

これは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]&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

0
Chris Emerson

{「error_type」:「OAuthException」、「code」:400、「error_message」:「リダイレクトURIは登録済みリダイレクトURIと一致しません」}

Instagramからアクセストークンを取得する方法

InstagramでサンドボックスクライアントAPIを登録するときは、ウェブサイトのURLが同じでなければなりません https://www.instagram.com/developer/

ここでは、WebサイトのURLを使用しました: https://adlivetech.com 有効なリダイレクトURI: https://adlivetech.com/

ライブWebサイトの場合、 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

0
Rohit Kaushik

Drupagramモジュール(Drupal 7)の場合:http://localhost:3000/instagram/oauth as redirect_uri

0
Sergey Zhukov

私は何年もこれをいじくり回しました..おそらく変更されていますが: http:// localhost:3000/users/auth/instagram/int_callback は私にとって最終的に機能したコールバックURIでした。私が抱えていた唯一の問題は、それが正確に間違ったコールバックURIであり、コードを変更するのではなく、Instagramのセットアップに集中する必要があることをここで見たかったということでした..エラーメッセージを取得することは、他のすべてが機能していることを意味します(これまでのところ)、そうしないと、その特定のエラーメッセージが表示されません。幸運を!! -気を散らさないでください!

0
Julian

問題:Oauth2 Instagram API「リダイレクトURIが登録済みリダイレクトURIと一致しない

私の解決策:ng-cordova-oauth.jsファイルを確認し、その中のinstagram関数を確認してください。 redirect_uriの値がInstagramの開発者コンソールでアプリケーションを登録するのと同じであることを確認します。同じ場合は適切に動作します。それ以外の場合は上記の問題が発生します。

0
Narendrakumar

この問題があり、instagramに提供されるリダイレクトURIが使用しているものとまったく同じである場合、一部のユーザーは私のinstagram apiで私のウェブサイトアドレスをhttp://www.example.com/loginとして入力していることがわかりましたhttp://example.com/loginでした。

次に、URLに文字列wwwが存在するかどうかを検出するphpスクリプトを作成し、wwwなしで同じページにリロードします。

if(strpos($_SERVER['HTTP_Host'], 'www.') !== FALSE) {
    header("Location: ".str_replace('www.', '', $_SERVER['HTTP_Host'].'/'.$_SERVER['REQUEST_URI']));
}
0
CIRCLE