2014-11-05 11 views
14

परिदृश्य: अनुप्रयोग के लिए लॉग इन गूगल + लॉग इनगूगल प्लस लॉग इन

कार्यान्वयन के माध्यम से:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    GPPSignIn *aGPSSignIn = [GPPSignIn sharedInstance]; 
    aGPSSignIn.scopes = @[ kGTLAuthScopePlusLogin, kGTLAuthScopePlusUserinfoEmail, kGTLAuthScopePlusUserinfoProfile, kGTLAuthScopePlusMe]; 
    aGPSSignIn.shouldFetchGoogleUserEmail = YES; 
    aGPSSignIn.shouldFetchGooglePlusUser =YES; 
    aGPSSignIn.homeServerClientID = kClientID; 
    aGPSSignIn.clientID = kClientID; 
    aGPSSignIn.delegate = self; 
    if (![aGPSSignIn trySilentAuthentication]) { 
     [self showLoginButton]; 
    } 
} 

- (void)showLoginButton { 
    if (!self.signInButton) {   
     self.signInButton = [GPPSignInButton buttonWithType:UIButtonTypeCustom]; 
     [self.signInButton setFrame:CGRectMake(60, 100, 200, 40)]; 
    } 
    [self.view addSubview:self.signInButton]; 
} 

#pragma mark - GPPSignInDelegate 

- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth error: (NSError *) error { 
    NSString *anAccessToken = auth.accessToken; 
    NSLog(@"googleAccessToken:%@",anAccessToken); 
} 

- (void)didDisconnectWithError:(NSError *)iError { 
    if (iError) { 
     NSLog(@"Error:%@", iError); 
    } 
} 

नोट: - (BOOL)application: (UIApplication *)application openURL: (NSURL *)url sourceApplication:(NSString *)sourceApplication annotation: (id)annotation AppDelegate में नियंत्रित किया जाता है।

मुद्दा:

  • जब उपयोगकर्ता Google प्रवेश बटन पर क्लिक करता है और सफारी पर नेविगेट कर रहा है गूगल + लॉगिन बिल्कुल ठीक काम करता है। मेरे ऐप में एक मान्य एक्सेस टोकन प्राप्त हुआ है।
  • हालांकि, यदि Google+ ऐप आईफोन पर उपलब्ध है, तो उपयोगकर्ता को Google+ ऐप पर नेविगेट किया जाता है लेकिन लॉग इन नो एक्सेस टोकन प्राप्त होता है। मुझे एक त्रुटि मिलती है।

त्रुटि:

Received error Error Domain=com.google.GooglePlusPlatform Code=-1 "The operation couldn’t be completed. (com.google.HTTPStatus error 400.)" UserInfo=0x15d95f90 {NSLocalizedDescription=The operation couldn’t be completed. (com.google.HTTPStatus error 400.)} and auth object (null)

यह बहुत उपयोगी हो सकता है अगर किसी ने मुझे इस समस्या को हल करने में मार्गदर्शन कर सकते हैं। धन्यवाद।

+0

क्या आपने अपना ऐप रखा है Google डेवलपर कंसोल पर बंडल आईडी? ऐप शुरू करने के लिए Google+ एपीआई में वेबव्यू या सफारी से एकमात्र तरीका है। – khunshan

+0

हाँ मैंने किया। लेकिन फिर भी त्रुटि एक ही है। – Nishi

+0

@ निशी आपको कोई समाधान मिला? मुझे एक ही समस्या का सामना करना पड़ रहा है http://stackoverflow.com/questions/30160104/authentication-not-working-with-google-app – Tariq

उत्तर

3

कृपया परियोजना में यूआरएल योजना निर्धारित करें।

कदम:

  • Login your developer account
  • साइडबार से अपनी परियोजना
  • चयन एपीआई & प्रमाणन चयन
  • चयन साख
  • कॉपी 'रीडायरेक्ट URI' और 'बंडल आईडी'
  • ओन एक्सकोड परियोजना
  • चयन परियोजना लक्ष्य
  • चयन 'जानकारी'
  • विस्तार से URL प्रकार
  • पहचानकर्ता क्षेत्र में 'बंडल आईडी'
  • पेस्ट यूआरएल योजनाएं क्षेत्र में 'रीडायरेक्ट URI' पेस्ट

हैं यह 'रेडियरेक्ट यूआरआईएस' को 'बंडल आईडी' के साथ बदलकर काम नहीं कर रहा है, यानी पहचानकर्ता और यूआरएल योजनाएं समान हैं।

आशा यह आप

+0

मैंने रेडियरेक्ट यूआरआईएस 'को' बंडल आईडी 'के साथ बदलने की कोशिश की, दुर्भाग्य से यह काम नहीं किया। – Nishi

+0

ने मुझे भी काम नहीं किया – Tariq

0

आप अनुप्रयोग प्रतिनिधि

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 

में इस समारोह में अपने कोड डाल दिया और इस समारोह टिप्पणी और मुझे परिणाम बता

- (BOOL)application: (UIApplication *)application openURL: (NSURL *)url 

sourceApplication की कोशिश कर सकते मदद मिल सकती है : (एनएसएसटींग *) स्रोत आवेदन एनोटेशन: (आईडी) एनोटेशन

+0

जब मैं पिछली विधि को "- (बूल) एप्लिकेशन के साथ प्रतिस्थापित करता हूं: (यूआईएप्लिकेशंस *) एप्लिकेशन openURL: (NSURL *) url", मुझे टोकन प्रतिक्रिया मिलती है: "टोकन रिस्पॉन्स? ई =% 20operation% 20couldn % E2% 80% 99T% 20be% 20completed।% 20% 28com.google.HTTPStatus% 20error% 20400.% 29 और कोड = "। – Nishi

संबंधित मुद्दे