0

我正在尝试在 Instagram API 中获取 oauth_token。我看到了他们的文档。所以我看到获取令牌的操作是这样的:uiwebview 加载带有客户端 ID 和重定向 uri 的特殊请求 url,当用户单击“接受”时,服务器使用 CODE 重定向到我的重定向 uri。然后我必须发布收到的带有客户端 ID 和客户端密码的代码。这是我的 loginViewController 代码。我正在尝试使用 AFNetworking 发布数据。我究竟做错了什么?

我只能获取 CODE,但无法将其 POST 回获取令牌。

- (void)viewDidLoad
{
    [loginPage loadRequest:[NSURLRequest requestWithURL:
[NSURL URLWithString:@"https://api.instagram.com/oauth/authorize/?
client_id=MY_CLIENT_ID&redirect_uri=http://MY_REDIRECT_URI/&response_type=code"]]];

    [super viewDidLoad];
}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:
(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

    //here I'm getting the CODE
    NSURL *clickedURL = [request URL];
    NSString *URLString = [clickedURL absoluteString];
    NSArray *tmpArr = [URLString componentsSeparatedByString:@"="];
    code = [tmpArr objectAtIndex:1];
    NSLog(@"code: %@", code);

接下来做什么??

4

1 回答 1

0

我已经实施了几次 OAuth 并建议您使用gtm-oauth。使用 OAuth 时,集成和处理所有可能的错误等相当容易。或者,AFNetworking 有一些 OAuth 项目正在开发中。OAuth1 / OAuth2

您可以自己构建,但您需要处理所有返回的错误,并构建一种在 webview 中的页面之间向后和第四次导航的方法,gtm-oauth 已经为您完成了。

于 2012-09-28T09:41:23.850 回答