1

foursquareapiを使用してfoursquareにログインしようとしています。ログインページが表示されていますが、ユーザー名またはパスワードを入力しようとするとクラッシュします。数日前はうまく機能していましたが、突然機能しなくなりました。

Server responded with:400, bad request
2012-08-24 14:44:25.227[1962:17903] contant data {"error":"invalid_grant"}
2012-08-24 14:44:25.228[1962:17903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: foursquare_access_token)'

私を助けてください 。なぜこのエラーが発生するのですか?

4

2 に答える 2

3

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
于 2012-08-24T20:56:07.073 に答える
0

Get yout own key consumer key and secret for application on oauth

After having consumer key and secret for application update or replace in

 Constants.h file of your poject
于 2012-08-24T09:26:29.440 に答える