Не удалось получить данные JSON с помощью Google API на iOS.IOS

Программируем под IOS
Ответить
Anonymous
 Не удалось получить данные JSON с помощью Google API на iOS.

Сообщение Anonymous »

Я пытаюсь получить JSON из API AdSense, используя этот код:

Код: Выделить всё

#import "ViewController.h"
#import "GTMOAuth2Authentication.h"
#import "GTMOAuth2ViewControllerTouch.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];
[self signInToGoogle];
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

//Creat your Google APP here: https://code.google.com/apis/console/ and get the key and secret

#define GoogleClientID    @"xxxxxxxxx"
#define GoogleClientSecret @"xxxxxxxxx"
#define GoogleAuthURL   @"https://accounts.google.com/o/oauth2/auth"
#define GoogleTokenURL  @"https://accounts.google.com/o/oauth2/token"

- (GTMOAuth2Authentication * )authForGoogle
{
//This URL is defined by the individual 3rd party APIs, be sure to read their documentation

NSURL * tokenURL = [NSURL URLWithString:GoogleTokenURL];
// We'll make up an arbitrary redirectURI.  The controller will watch for
// the server to redirect the web view to this URI, but this URI will not be
// loaded, so it need not be for any actual web page.  This needs to match the URI set as the
// redirect URI when configuring the app with Instagram.
NSString * redirectURI = @"urn:ietf:wg:oauth:2.0:oob";
GTMOAuth2Authentication * auth;

auth = [GTMOAuth2Authentication authenticationWithServiceProvider:@"lifebeat"
tokenURL:tokenURL
redirectURI:redirectURI
clientID:GoogleClientID
clientSecret:GoogleClientSecret];
auth.scope = @"https://www.googleapis.com/auth/adsense";
return auth;
}

- (void)signInToGoogle
{
GTMOAuth2Authentication * auth = [self authForGoogle];

// Display the authentication view
GTMOAuth2ViewControllerTouch * viewController = [[GTMOAuth2ViewControllerTouch alloc] initWithAuthentication:auth
authorizationURL:[NSURL URLWithString:GoogleAuthURL]
keychainItemName:@"GoogleKeychainName"
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
[self.navigationController pushViewController:viewController animated:YES];

}

- (void)viewController:(GTMOAuth2ViewControllerTouch * )viewController
finishedWithAuth:(GTMOAuth2Authentication * )auth
error:(NSError * )error
{
NSLog(@"finished");
NSLog(@"auth access token: %@", auth.accessToken);

[self.navigationController popToViewController:self animated:NO];
if (error != nil) {
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error Authorizing with Google"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
} else {

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Success Authorizing with Google"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
NSURL *url = [NSURL URLWithString:@"https://www.googleapis.com/adsense/v1.1/reports"];

NSData *jsonData = [NSData dataWithContentsOfURL:url];

if(jsonData != nil)
{
NSError *error = nil;
id result = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
if (error == nil)
NSLog(@"%@", result);
}
}

@end
Я нормально вхожу в Google в приложении и получаю всплывающее окно с сообщением об успехе, но при этом мой nslog показывает следующее:

Код: Выделить всё

2013-06-14 19:28:51.681 Simple-OAuth2[9253:c07] finished
2013-06-14 19:28:51.681 Simple-OAuth2[9253:c07] auth access token: ya29.xxxxxxxxxx
2013-06-14 19:28:51.912 Simple-OAuth2[9253:c07] {
error =     {
code = 401;
errors =         (
{
domain = global;
location = Authorization;
locationType = header;
message = "Login Required";
reason = required;
}
);
message = "Login Required";
};
}
Как мне остаться в системе?

Подробнее здесь: https://stackoverflow.com/questions/171 ... api-on-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»