所以我有我的 auth instagram 代码。 token 已提供但无法使用并显示消息“You must to switch cookies ”。我必须做什么?感谢您的回答。
现在我尝试从 instagram 获取 token :
NSURL *url=[NSURL URLWithString"http://instagram.com"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod"GET"];
[request setHTTPShouldHandleCookies:YES];
NSData *urlData;
NSHTTPURLResponse *response;
NSError *errors;
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&errors];
NSString *string = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern"csrf_token\":\"(.*)," options:0 error:NULL];
NSString *token = string;
NSTextCheckingResult *match = [regex firstMatchInString:token options:0 range:NSMakeRange(0, [token length])];
NSString *str = [[token substringWithRange:[match rangeAtIndex:1]] stringByReplacingOccurrencesOfString"\"}"
withString""];
NSLog(@"%@", str);
NSString *post = [NSString stringWithFormat"csrfmiddlewaretoken=%@&username=%@&password=%@", str, @"nnn", @"nnnpass"];
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat"%d", [postData length]];
request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString"https://instagram.com/accounts/login/"]];
[request setHTTPMethod"OST"];
[request setHTTPShouldHandleCookies:YES];
[request setValue:postLength forHTTPHeaderField"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&errors];
NSString *string2 = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"%@", string2);
Best Answer-推荐答案 strong>
NSDictionary *cookieProperties = [NSDictionary dictionaryWithObjectsAndKeys:
@"", NSHTTPCookieDomain,
@"\\", NSHTTPCookiePath,
@"csrftoken", NSHTTPCookieName,
@"2dfdbaaeae7752882d792e49d79c0048", NSHTTPCookieValue,
nil];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
NSArray* cookieArray = [NSArray arrayWithObjects: cookie, nil];
NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookieArray];
在 POST 请求中添加:
[请求 setAllHTTPHeaderFields:headers];
关于ios - 如何使用 cookie 在 Instagram 中进行身份验证?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/23220751/
|