2014-09-16 4 views
0

Я пытаюсь заставить Google OAuth работать на iOS, поэтому я могу делать запросы к API календаря Google. В настоящее время я использую этот код, чтобы загрузить регистрационную карточку Google в UIWebView и попытаться получить маркер доступа обратно ..Google OAuth HTTP API iOS

[AISWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/calendar&redirect_uri=%@&response_type=code&client_id=%@",kSharedURI,kClientId]]]]; 

Я управляю, чтобы получить то, что я думаю, что это маркер доступа из текстового поля, которое появляется здесь, путем разбора HTML снова и снова с помощью NSString. Но когда я пытаюсь использовать то, что я думаю, что это маркер доступа, чтобы сделать этот календарь запрос с использованием NSMutableURLRequest, я получаю ответ от Google говоря

error = { 
     code = 401; 
     errors = (
        { 
      domain = global; 
      location = Authorization; 
      locationType = header; 
      message = "Login Required"; 
      reason = required; 
     } 
    ); 
    message = "Login Required"; 
}; 

Если у кого есть какие-либо идеи, которые они будут абсолютно оценены. Благодарю.

+0

Вы URL-кодирующая kSharedURI? – arik

ответ

0

Прежде всего, обратите внимание, что я не знаком с API Google.

Я думаю, что вы отправляете данные OAuth в качестве параметров в запросе. Но они запрашивают их как заголовок аутентификации. Для добавления этих заголовков вы должны использовать инфраструктуру, такую ​​как NSURLConnection (или сторонние структуры).

Обратитесь к следующим образом: NSURLConnection and Basic HTTP Authentication in iOS для примера

Удачи