2014-04-12 87 views
5

我正在使用Instagram API爲身份驗證開發iOS應用程序。自定義登錄Instagram API iOS

我的身份驗證代碼工作良好:

NSString *fullURL = [NSString stringWithFormat:@"https://instagram.com/oauth/authorize/?client_id=%@&redirect_uri=%@&response_type=code",KCLIENTID,kREDIRECTURI]; 
NSURL *url = [NSURL URLWithString:fullURL]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

instagramConnectWebView = [[UIWebView alloc] initWithFrame:self.view.bounds]; 
instagramConnectWebView.delegate = self; 
[instagramConnectWebView loadRequest:request]; 

當請求被髮送,我的web視圖顯示了標準Instagram的登錄界面,在用戶插入的用戶名和密碼登錄。如果登錄成功,應用程序將重定向到我的重定向URL,在那裏我得到此用戶的代碼和令牌。

我的問題很簡單,有沒有辦法自定義Instagram登錄的標準界面?我想在我的應用程序中插入兩個簡單的UITextField(一個用於用戶名和一個用於密碼),當用戶點擊我的UIButton登錄時,應用程序應該向Instagram發送(POST或GET?)用戶名和密碼,並返回響應登錄成功與否)。

我希望我解釋一下自己。

謝謝。

+0

你有沒有找到解決方案?我也想弄明白這一點。 – GoldenJoe

+0

我沒有,我不知道是否有可能,我仍然使用標準的Instagram API接口:( – lubilis

+2

作爲一個用戶,我不會相信一個應用程序,它創建一個服務的自己的登錄屏幕,我想甚至雖然Instagram的oauth登錄屏幕很醜,但我認爲最好保留它,因爲用戶覺得直接把他們的憑證直接發送到Instagram是更安全的。 – dynamokaj

回答

6

您可以使用javascript進行設置。通過在後臺加載網絡視圖:

您需要訪問該Web視圖的文本字段並傳遞自定義UItextfields的值,之後您可以調用webView的「提交」按鈕的Onclick事件。

NSString *javaScript = @"document.getElementById('id_username').value = 'tfusername'"; 
NSString *javaScript2 = @"document.getElementById('id_password').value = 'tfpassword'"; 

來評估每個腳本,您可以撥打:[webView stringByEvaluatingJavaScriptFromString:javaScript];

您也可以撥打腳本按登錄按鈕。這同樣的事情對我有用。可能這會幫助你。

+0

好主意,我會試試! – lubilis

+0

更新:Instagram只是改變了他們的登錄頁面,這不再起作用 –

+0

@abhineet我可以在Instagram中用我自己的用戶名,密碼和UIButton文本框登錄..?請幫助我,謝謝。 – ilesh

0

我爲iOS的Instagram API創建了一個包裝。看看link。這也會讓你知道你需要做什麼。

+0

hi @kkocabiyik我可以在Instagram中用我自己的'textfield'登錄用戶名,密碼和'UIButton' ..?請幫幫我。 – ilesh