4

アプリケーションを Google API コンソールに登録します。そして、クライアント シークレット、クライアント ID、および2 つのリダイレクト urisを取得します。

//● urn:xxxxxxx:oob

//● http://localhostxxxxxx

もちろん、これらのアイテムを使用して、Google にトークンをリクエストすることに成功しました。しかし、認証ボタンをクリックすると(「このアプリケーションを認証しますか?」のように)、2 つの応答が発生します。

urnxxxxxx を使用すると、「操作を完了できませんでした。(com.google.HTTPStatus エラー 404.)」と表示されます。

//Or If I use http://localhostxxxxxxxxxxxxx and click Yes button, then nothing    
happens.

次に何をすればいいですか?(以下のコードは Google リーダー用です。)

#import "MasterViewController.h"

#import "DetailViewController.h"

#import "GTMOAuth2Authentication.h"

#import "GTMOAuth2ViewControllerTouch.h"

#import "GTMOAuth2WindowController.h"

static NSString *const kKeychainItemName = @"Greader";


@interface MasterViewController () {
    NSMutableArray *_objects;
}
@end

@implementation MasterViewController


- (IBAction)authentication:signInToGoogle:(id)sender;

{}

- (GTMOAuth2Authentication * ) authForGoogle
{ 
    NSString * url_string = @"http://www.google.com/reader/api/";
    NSURL * tokenURL = [NSURL URLWithString:url_string];

    NSString * redirectURI = @"xxxxoob";
    GTMOAuth2Authentication * auth;
    auth = [GTMOAuth2Authentication authenticationWithServiceProvider:@"reader"
                                                         tokenURL:tokenURL
                                                      redirectURI:redirectURI
                                                         clientID:@"xxxxx"
                                                     clientSecret:@"xxxx"];

    auth.scope = @"http://www.google.com/reader/api/";
    return auth;
}


- (void)signInToGoogle

{
    GTMOAuth2Authentication * auth = [self authForGoogle];
    NSString* auth_string = @"https://accounts.google.com/o/oauth2/auth";
    NSURL * authURL = [NSURL URLWithString:auth_string];

    GTMOAuth2ViewControllerTouch * viewController;
    viewController = [[GTMOAuth2ViewControllerTouch alloc]initWithAuthentication:auth
                                                             authorizationURL:authURL
                                                             keychainItemName:kKeychainItemName
                                                                     delegate:self
                                                             finishedSelector:@selector(viewController:finishedWithAuth:error:)];
    [self.navigationController pushViewController:viewController animated:YES];
}
4

1 に答える 1

2

最初に oAuth について学ぶ必要があります。

通常、最初のリンクは認証フローです。これを呼び出してコードを取得します。2 番目の URL は、前の URL から取得したコードを使用してトークンを取得することです。

ここでは、oAuth の操作方法を正確に説明することはしませんが、読んで学べる場所はたくさんあります。

于 2012-11-01T09:58:45.700 に答える