-1

Vimeo を自分のアプリに統合したいと考えています。vimeo 開発者サイトを調べました。すべて問題ありませんが、認証できません。Oauth のチュートリアルを調べましたが、理解に苦しむことがわかりました。締め切りが非常に短いことがわかりました。このリンクですが、簡単で良いとは感じませんでした。

4

1 に答える 1

1

最初に、プロジェクトに OAuthConsumer ファイルをドラッグしました

http://oauth.googlecode.com/svn/code/obj-c/OAuthConsumer/

「iPhone 対応」とは、ファイルを Xcode に追加し、「OAuthConsumer.h」をインポートするだけでよいことを意味します。

iPhone を使用している場合:

1) Security.framework を必ず追加してください。

2) フレームワークに libxml2.dylib を含めます。また、ビルド プロパティをプロジェクトに追加する必要があります。「ヘッダー検索パス」には、「再帰」がオンになっている「$SDKROOT/usr/include/libxml2」を含める必要があります。

Viewcontroller.h 内

#import "OAConsumer.h"
#import "OAMutableURLRequest.h"
#import "OADataFetcher.h"


@property(nonatomic,strong) OAToken  *accessToken;
@property(nonatomic,strong) IBOutlet UIWebView *webView;

Viewcontroller.m 内

@synthesize accessToken;
@synthesize webView;


- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.




// Do any additional setup after loading the view, typically from a nib.

OAConsumer *consumer = [[OAConsumer alloc] initWithKey:@"fa9374b9fc90f2ffd7b4P8K3776530fa6023985b"
                                                secret:@"d6242b63d435757526u87e7ceca98ffdcd8d9d55e"];

NSURL *url = [NSURL URLWithString:@"https://vimeo.com/oauth/request_token"];


OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
                                                               consumer:consumer
                                                                  token:nil
                                                                  realm:nil
                                                      signatureProvider:nil];

[request setParameters: [NSArray arrayWithObjects: [[OARequestParameter alloc] initWithName: @"oauth_callback" value: @"http://vimeo.com/api/rest/v2?format=json&method=vimeo.videos.search&qdfduery=amir+khan"] ,nil]];

[request setHTTPMethod:@"GET"];

OADataFetcher *fetcher = [[OADataFetcher alloc] init];

[fetcher fetchDataWithRequest:request

                     delegate:self

            didFinishSelector:@selector(requestTokenTicket:didFinishWithData:)

              didFailSelector:nil];


}




- (void)requestTokenTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data {
if (ticket.didSucceed)
{




    NSString *responseBody = [[NSString alloc] initWithData:data
                                                   encoding:NSUTF8StringEncoding];
    OAToken *requestToken = [[OAToken alloc] initWithHTTPResponseBody:responseBody];
    NSLog(@"data %@",requestToken);

    OAMutableURLRequest *request;

    if (self.accessToken != nil)
    {
        self.accessToken = nil;
    }

    self.accessToken = [[OAToken alloc] initWithHTTPResponseBody:responseBody];
    NSLog(@"access token key %@",self.accessToken.key) ;
    NSLog(@"access token secret %@",self.accessToken.secret) ;
    NSURL *url = [NSURL URLWithString:@"https://vimeo.com/oauth/authorize"];
    OAConsumer *consumer = [[OAConsumer alloc] initWithKey:self.accessToken.key
                                                    secret:self.accessToken.secret];

    request = [[OAMutableURLRequest alloc] initWithURL:url
                                              consumer:consumer
                                                 token:self.accessToken
                                                 realm:nil
                                     signatureProvider:nil];

    OARequestParameter *p0 = [[OARequestParameter alloc] initWithName:@"oauth_token" value:self.accessToken.key];
    NSArray *params = [NSArray arrayWithObject:p0];
    [request setParameters:params];
    [webView loadRequest:request];
    NSLog(@"request %@",request);



   }
}
于 2013-09-04T13:33:17.700 に答える