2013-04-24 15 views
8

Pracuję nad aplikacją na iPada i muszę zintegrować Instagram. Znalazłem próbkę, która działa dobrze. Ale przychodząc do mojej aplikacji zarejestrowałem się jako nowy użytkownik na koncie programisty na Instagramie. Chociaż postępuję zgodnie z instrukcjami opisanymi w dokumentach API Instagram, pojawia się błąd "Identyfikator URI przekierowania nie pasuje do zarejestrowanego identyfikatora URI przekierowania"."Identyfikator URI przekierowania nie pasuje do zarejestrowanego identyfikatora przekierowania" w integracji z instagramiem w aplikacji IOS

Czy ktoś może mi pomóc w generowaniu identyfikatora URI przekierowania?

Oto, co zrobiłem na Instagramie. enter image description here

I w moim symulator ja dostaję ten błąd:

enter image description here

+0

Prawdopodobnie błędnie wpisałeś swój przekierowany adres URL lub "/" może mieć wpływ, bądź ostrożny przy użyciu specjalnych symboli oraz spacji w łańcuchach. –

Odpowiedz

21

Użyj REDIRECT URI: igeb6240d263fb4736b3740af87edd18ea: // zezwalania
dla aplikacji

Twój REDIRECT URI powinno być: „ig "+" Twój identyfikatorklienta "+": // autoryzuj "

+6

To nie działa, ponieważ nie mogę wprowadzić redirect_uri nienależącego do http/https w portalu deweloperskim Instagrama, a Instagram odrzuca wszelkie niezarejestrowane parametry redirect_uris. – Eonil

+3

@Sujal Ten adres URL jest niedopuszczalny w portalu dla programistów. ("Ig" + "your clientId" + ": // authorize") Jaki dokładny adres URL musimy dodać na portalu deweloperskim portalu Instagram – Rajesh

+0

@ Sujal Instagram portal rejestru klienta doesn akceptuje protokół nie http (s). Nie możemy wejść do myapp: // autoryzuj. Próbowałem włączyć tryb niejawny, usuwając zaznaczenie opcji Wyłącz niejawną autoryzację OAuth na karcie Zabezpieczenia w portalu. Ale nadal nie akceptuje innych niż http (s). Jak udało ci się sprawić, żeby działało? –

4

Możesz użyć, co chcesz, jako swojego identyfikatora URI przekierowania. Musisz przekazać identyfikator URI przekierowania jako parametr Get w żądaniu autoryzacji.

Upewnij się, że oba pasują do siebie! Możesz przejść do podfolderów lub dodać do niego dodatkowe parametry, ale początek musi pozostać taki sam.

Proponuję nie korzystać z witryny, ale połączyć się z jednym ze schematów adresów URL aplikacji. Dla poradnik jak ustawić te góry, zajrzyj tutaj: http://www.idev101.com/code/Objective-C/custom_url_schemes.html

Tak na przykład można użyć myapp:// jako domyślny przekierować URI, który chcesz zarejestrować z Instagram.

Wewnątrz aplikacji można dodać do niej dodatkowe parametry. Instagram przekaże je do Twojego identyfikatora URI przekierowania, aby można je było ponownie odczytać w AppDelegate lub na serwerze. Upewnij się, że prawidłowo kodujesz URI przekierowania. Najprostszym sposobem na to byłoby:

NSString *unescaped = [NSString stringWithFormat:@"myapp://?someparameter=%@",theparametersvalue]; 
NSString *redirectURI = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
                     NULL, 
                     (__bridge CFStringRef) unescaped, 
                     NULL, 
                     CFSTR("!*'();:@&=+$,/?%#[]"), 
                     kCFStringEncodingUTF8)); 

Teraz włóż redirectURI wraz z identyfikatorem klienta do tego adresu URL i wystrzelić zgłoszeniu:

https://api.instagram.com/oauth/authorize/?client_id=YOURCLIENTID&redirect_uri=YOURREDIRECTURI&response_type=code 

Jeśli potrzebujesz więcej niż podstawowe uprawnienia, wyboru zakresy w dokumentacji.

+2

Możesz zarejestrować tylko http: // i https: // URI w portalu Instagram, więc nie widzę, jak to może działać ... – Zigglzworth

Powiązane problemy