Foursquare ログイン ページは、Facebook Web サイトからのリクエストを返すようになりました。したがって、FB 資格情報を使用して Foursquare にログインできます。
これらの応答の 1 つは、Foursquare2ロジック
https://s-static.ak.facebook.com/connect/xd_arbiter.php?version=10#cb=xxx&origin=https%3A%2F%2Ffoursquare.com%2Fxxx&domain=foursquare にブレーキをかけます。 com&relation=parent&frame=xxx& error=unknown_user
Foursquare2 は、応答で「エラー =」を探しています。デリゲート コールバックが見つかった場合は、デリゲート コールバックを実行します。
それを修正するには、「webView:shouldStartLoadWithRequest:navigationType:」を置き換えます
Foursquare2.m で
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSString *url =[[request URL] absoluteString];
if ([url rangeOfString:@"facebook.com"].location != NSNotFound)
return YES; //ignore Facebook authentication
if ([url rangeOfString:@"code="].length != 0) {
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies]) {
if ([[cookie domain]isEqualToString:@"foursquare.com"]) {
[storage deleteCookie:cookie];
}
}
NSArray *arr = [url componentsSeparatedByString:@"="];
[delegate performSelector:selector withObject:[arr objectAtIndex:1]];
[self cancel];
}else if ([url rangeOfString:@"error="].length != 0) {
NSArray *arr = [url componentsSeparatedByString:@"="];
[delegate performSelector:selector withObject:[arr objectAtIndex:1]];
FourSquareLog(@"Foursquare: %@",[arr objectAtIndex:1]);
}
return YES;
}
新しいことに注意してください
if ([url rangeOfString:@"facebook.com"].location != NSNotFound)
return YES; //ignore Facebook authentication