2013-05-14 34 views
13

Tôi đang làm việc trên ứng dụng Rails đang ở chế độ phát triển và có thể đăng ký bằng omniauth.API Oauth2 Instagram "URI chuyển hướng không khớp với URI chuyển hướng đã đăng ký"

Người dẫn chương trình là

http://localhost:3000/ 

Tôi đang sử dụng đá quý:

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

Khi tôi đăng ký thông qua omniauth với Foursquare không có vấn đề gì cả. Tất cả các cài đặt là đúng và redirect_uri của tôi trong cài đặt nhà phát triển Foursquare bằng với máy chủ lưu trữ (localhost: 3000)

Tuy nhiên, nếu tôi điền chính xác cùng redirect_uri (localhost: 3000) trong trình quản lý khách hàng Instagram *. Instagram mang lại cho tôi điều này:

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

Dựa trên URL này:

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

Tôi đang làm gì sai theo Instagram và làm thế nào nên này được cố định?

+2

Đã khắc phục sự cố. Đã thêm http: // localhost: 3000/auth/instagram/callback dưới dạng redirect_uri và nó hoạt động tốt. – Biketire

+0

Vui lòng thêm nhận xét của bạn làm câu trả lời và đánh dấu câu hỏi là đã trả lời. –

Trả lời

19

Đã khắc phục sự cố. Đã thêm localhost:3000/auth/instagram/callback làm redirect_uri và nó hoạt động tốt.

+1

Tôi đã phải thêm/người dùng/auth/instagram/callback –

+0

Hài hước rằng auth/instagram/callback này thực sự làm việc, bao giờ figured whats lý do này? – pal4life

+0

Tôi cũng đang gặp phải vấn đề tương tự. Bạn có thể giúp tôi không? –

0

Đối với mô-đun Drupagram (Drupal 7) nói thêm: http://localhost:3000/instagram/oauth như redirect_uri

5

tôi cần phải thêm

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

như callback tôi URI vì tôi đang sử dụng lập mưu.

0

Đối với bất kỳ ai đang gặp sự cố này và uri chuyển hướng được cung cấp cho instagram chính xác như bạn đang sử dụng, tôi thấy rằng một số người dùng đã nhập địa chỉ trang web của tôi là http://www.example.com/loginhttp://example.com/login.

Sau đó, tôi đã tạo tập lệnh php để phát hiện xem chuỗi www tồn tại trong url của tôi và sau đó tải lại vào cùng một trang nhưng không có www.

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

... Hoặc bạn có thể làm theo các hướng dẫn tại đây:

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

Xem "Bước Một: Chỉ đạo sử dụng của bạn để URL uỷ quyền của chúng tôi" phần.

Chỉ cần cung cấp CLIENT_ID và REDIRECT_URI của bạn.

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

Vấn đề: OAuth2 Instagram API “chuyển hướng URI không phù hợp với đăng ký chuyển hướng URI

Giải pháp của tôi: Vui lòng kiểm tra tập tin ng-cordova-oauth.js và kiểm tra instagram chức năng trong đó. Xác minh giá trị redirect_uri giống như đăng ký ứng dụng của bạn trên bảng điều khiển dành cho nhà phát triển cho Instagram.Nếu nó giống như nó hoạt động đúng cách, nếu không bạn sẽ gặp phải vấn đề ở trên.

3

Khi bạn chỉ định URI chuyển hướng http://localhost:3000 không giống như http://localhost:3000/ (lưu ý dấu gạch chéo sau).

Đảm bảo URI gọi lại khớp chính xác.

+1

Đây là câu trả lời, không tìm ở nơi khác. :) – Banago

+0

đây là câu trả lời đúng duy nhất –

0

{ "ERROR_TYPE": "OAuthException", "code": 400, "ERROR_MESSAGE": "Chuyển URI không phù hợp với đăng ký chuyển hướng URI"}

Làm thế nào để có được truy cập token từ instagram

của bạn website url phải cùng khi đăng ký sandbox clien api trên instagram https://www.instagram.com/developer/

ở đây chúng tôi sử dụng trang web url: https://adlivetech.com URI chuyển hướng hợp lệ: https://adlivetech.com/

F hoặc trang web trực tiếp bạn có thể nhận được truy cập thẻ một cách dễ dàng bằng cách sử dụng https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token

Replace trên url "KHÁCH HÀNG-ID" với ID khách hàng của bạn Replace trên url "REDIRECT-URI" redirect url nên tên miền của bạn như: http://adlivetech.com

https://adlivetech.com/access_token=YOUR_ACCESS_TOken

Các vấn đề liên quan