我正在尝试让 Google OAuth 在 iOS 上运行,以便我可以向 Google Calendar API 发出请求。我目前正在使用此代码将 Google 登录表加载到
UIWebView
中并尝试取回访问令牌..
[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]]]];
通过使用
NSString
一次又一次地解析 HTML,我设法从此处显示的文本字段中获取我认为的访问令牌。但是,当我尝试使用我认为的访问令牌来使用 NSMutableURLRequest
发出此日历请求时,我收到 Google 的回复说
error = {
code = 401;
errors = (
{
domain = global;
location = Authorization;
locationType = header;
message = "Login Required";
reason = required;
}
);
message = "Login Required";
};
如果有人有任何想法,我们将不胜感激。
首先请注意,我不熟悉Google的API。
我认为您正在将 OAuth 数据作为请求中的参数发送。但他们请求它们作为身份验证标头。您应该使用 NSURLConnection(或第 3 方框架)之类的框架来添加这些标头。
请参阅:iOS 中的 NSURLConnection 和基本 HTTP 身份验证 的示例
祝你好运