`

ios twitter oauth

    博客分类:
  • ios
阅读更多

最开始想做个twitter客户端玩玩,算是在实践中学习api

 

后来发现twitter原来是可以让开发者用 base64认证的方式去使用api的,结果现在不行了

必须使用oauth的方式, 但oauth方式下必须到twitter的页面上去点击确定,这还是本地app程序吗,太恶心了,

其实twitter也提供了xauth方式认证,可以省去oauth认证中去网站上点确定的那一步,但可是要使用这种认证必须

给twitter发邮件,说明一堆理由。。。

 

假如你的应用中只有一个用户使用,即twitter账户是固定的话(这在普通应用中集成twitter的情况下常见),可以使用预先取得的access token 来完成oauth认证,也不需要去和web交互

 

 

我用的是gtm-oauth库,直接copy代码到项目中,因为不知道怎么导入静态库,那位会,教下我 :)

http://code.google.com/p/gtm-oauth/wiki/GTMOAuthIntroduction

 

    NSString *myConsumerKey = @"1111";  //这里是你的应用的key
    NSString *myConsumerSecret = @"2222"; // 这里是你的应用的secret
    
    GTMOAuthAuthentication *auth;
    auth = [[[GTMOAuthAuthentication alloc] initWithSignatureMethod:kGTMOAuthSignatureMethodHMAC_SHA1
                                                        consumerKey:myConsumerKey
                                                         privateKey:myConsumerSecret] autorelease];

    // setting the service name lets us inspect the auth object later to know
    // what service it is for
    auth.scope=@"http://api.twitter.com/";
    auth.serviceProvider = @"Twitter";
    auth.accessToken = @"33-33";     //这里是你自己个人的accesstoken
    auth.signatureMethod = @"HMAC-SHA1";
    auth.shouldUseParamsToAuthorize =NO;
    auth.tokenSecret=@"4444A";    //这里是你自己个人的accesstokensecret

 上面的代码是在拼一个GTMOAuthAuthentication对象,有了这个对象你就可以给你的request添加认证信息

 

接下来是调用api访问用户自己的信息,  get

NSURL *requestURL = [NSURL URLWithString:@"http://api.twitter.com/1/account/verify_credentials.json"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:requestURL];

    [auth authorizeRequest:request];  //认证请求
    
    GTMHTTPFetcher *fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
    
    [fetcher beginFetchWithDelegate:self
                    didFinishSelector:@selector(myFetcher:finishedWithData:error:)];

    
    [UIApplication sharedApplication].networkActivityIndicatorVisible=YES;



- (void)myFetcher:(GTMHTTPFetcher *)fetcher finishedWithData:(NSData *)retrievedData error:(NSError *)error{
    [UIApplication sharedApplication].networkActivityIndicatorVisible=NO;
    if(error){
        NSLog(@"%@",error);
    }else{
        NSString* aStr = [[NSString alloc] initWithData:retrievedData encoding:NSASCIIStringEncoding];
        NSLog(@"%@",aStr);
    }
}

 

下面是post请求发推

    NSURL *requestURL = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:requestURL];
    NSString *post = [NSString stringWithFormat:@"status=this tweet is by objective-c code in xcode at %@",[[[[NSDate alloc] init] autorelease] description] ];
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
    
    
    [auth authorizeRequest:request];
    
    GTMHTTPFetcher *fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
    
    [fetcher beginFetchWithDelegate:self
                    didFinishSelector:@selector(myFetcher:finishedWithData:error:)];

    
    [UIApplication sharedApplication].networkActivityIndicatorVisible=YES;
 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    swift-OAuthSwift-用于iOS基于Swift开发的OAuth库

    Swift开发中的OAuthSwift库是一个强大的工具,专门设计用于在iOS应用程序中处理OAuth认证流程。OAuth是一种授权框架,允许第三方应用在用户许可的情况下访问特定服务提供商的数据,如社交媒体平台或云存储服务,而...

    Beginning.iOS.Apps.with.Facebook.and.Twitter.APIs

    ### 关于《初学者指南:使用Facebook与Twitter API开发iOS应用》 本书旨在教导开发者如何将他们的iOS应用程序(包括游戏)连接到最流行的社交网络站点——Facebook和Twitter。作者Chris Dannen与Christopher White...

    IOS源码应用Demo-twitter开放api实例大全.zip

    在iOS开发领域,Twitter开放API的应用是一个常见的学习和实践课题,尤其对于毕业设计或论文撰写而言,这样的项目能帮助开发者深入理解网络通信、API接口调用以及数据解析等关键技术。"IOS源码应用Demo-twitter开放...

    swift-SwiftyOAuth一个用于iOS应用中的简单OAuth库

    Swift-SwiftyOAuth是一个专为iOS应用程序设计的轻量级OAuth库,旨在简化OAuth认证流程。这个库的主要目的是帮助开发者轻松地与支持OAuth协议的服务进行交互,如Twitter、Facebook、Google等。OAuth是一种授权框架,...

    集成OAuthConsumer的twitter应用-oauthTwitterApp(iOS版)

    OAuthConsumer是一个常用的库,用于处理OAuth认证流程,它在iOS应用与Twitter服务之间建立起安全的数据交换通道。本篇文章将深入讲解如何在iOS项目中集成OAuthConsumer库,创建一个能与Twitter交互的应用——...

    前端项目-oauth-io.zip

    1. **简化集成**:OAuth.IO 提供了一个简单的API,使得开发者可以快速集成各种OAuth服务,如Facebook、Twitter、Google等,而不必处理每个服务的特定实现。 2. **跨平台兼容**:OAuth.IO 支持多种平台,包括Web、...

    IOS应用源码——TwitterFeed for iOS.rar

    1. **OAuth认证**:了解如何通过Twitter的OAuth机制进行身份验证,以便在应用中代表用户发送和接收推文。 2. **JSON解析**:理解如何解析API返回的JSON数据,并将其转化为Swift对象。 3. **SwiftUI或UIKit**:熟悉...

    iOS游戏应用源代码——iosdeveloper-TwitterFeed-d779d5a.zip

    这涉及到OAuth认证流程,确保应用能够安全地代表用户与Twitter服务器进行交互。开发者需要设置Twitter开发者账户,并获取到必要的API密钥和访问令牌。 此外,iOS应用中的网络请求通常使用URLSession或者第三方库如...

    IOS应用源代码(6个)

    4. "第三方twitter客户端.zip":这是另一个社交应用,可能是一个非官方的Twitter客户端,开发者可以从中学习如何使用OAuth进行身份验证,以及如何显示和发送推文。 5. "SBAMobile.zip":这个名称可能是“SBA Mobile...

    ios社区分享开发工具

    6. **多平台支持**:一个完整的社区分享工具应该支持多种社交平台,比如微信、微博、QQ、Facebook、Twitter等。这样用户可以根据自己的偏好选择分享渠道。 7. **性能优化**:为了提供流畅的用户体验,开发者需要...

    OAuthConsumer源码(iOS版)

    OAuth允许应用在不获取用户密码的情况下,安全地访问用户的受保护资源,例如Twitter、Facebook等社交媒体的数据。下面我们将深入探讨OAuthConsumer的源码,以及它如何在iOS开发中实现OAuth流程。 OAuth协议主要分为...

    ios源码一个简单的推特客户端.zip

    7. **Authentication**:登录功能是必不可少的,开发者可能使用OAuth或者Twitter的SDK来处理用户认证。 8. **Notification**:为了实时更新推文,应用可能使用iOS的通知服务,当有新消息时通知用户。 9. **GCD ...

    IOS应用源码之commanda-TwitterGame-26b6290.zip

    3. **Twitter API集成**:游戏与Twitter的结合,意味着源码中会包含对Twitter API的调用,这涉及到OAuth认证、HTTP请求发送、JSON数据解析等内容。开发者可能使用AFNetworking或其他第三方库来简化网络请求处理。 4...

    Swifter:使用Swift编写的适用于iOS和OS X的Twitter框架

    入门 安装 如果您使用的是Xcode 6及更高版本,只需将Swifter Xcode项目拖到您自己的项目...// Instantiation using Twitter's OAuth Consumer Key and secret swifter = Swifter ( consumerKey : TWITTER_CONSUMER_KEY,

    simple-oauth1:使用OAuth 1.0a服务提供商进行身份验证的简单插入类

    简单的oauth1使用OAuth 1.0a服务提供商进行身份验证的简单代码为具有块和ARC的iOS 6构建。 AFNetworking( )提供了一些很棒的方法来处理url参数,该方法已在项目中使用。 还使用了OAuthConsumer( )的一种不错的...

    IOS新浪微博客户端

    在这个项目中,我们可能看到的是Objective-C编写的基础架构,因为它是早期iOS开发的主流语言,且对于Twitter和微博类的应用,Objective-C有丰富的第三方库支持。 1. **OAuth授权机制**:接入微博API时,开发者需要...

    TwitterAPI封装Objectwitter-C.zip

    打开 Safari 或者使用 UIWebView 实例,执行 Twitter 验证操作然后通过一个定制的 UEL scheme 在你的 app 中直接接收 OAuth access token 使用 Application Only 验证,获取并使用 “bearer ...

    iOS实例开发源码——garethstokes-evil-ken-1ca42bc.zip

    除此之外,如果项目涉及到用户登录、社交分享等功能,可能使用了OAuth、Facebook SDK或Twitter API等。如果包含游戏元素,那么可能用到了SpriteKit或GameplayKit等游戏开发框架。 最后,源码中的Podfile或Carthage...

Global site tag (gtag.js) - Google Analytics