iphone调用Twitter相应api

转自: http://wangjun.easymorse.com/?p=956


我们在程序中经常会用twitter分享应用和一些好玩的东西,twitter给我们提供了相应的api,但是在中国由于大防火墙的原因,我们不能正常访问twitter网站,需要使用代理或vpn。

本文参考:http://mobile.tutsplus.com/tutorials/iphone/twitter-api-iphone/

实现的效果图:

IMG_0126 IMG_0127 IMG_0128

实现过程如下:

  • 下载twitter关于ios的api包,点击下载,然后解压即可。
  • 新建一个demo工程,能够正常编译运行即可。
  • 拷贝压缩包下的Twitter+OAuth到demo工程中。

  image

  • 然后增加 libxml2 Library到Frameworks中去。

                          image

  • 在info中的build中的Header Search Paths里添加:$(SDKROOT)/usr/include/libxml2 

image

 

  • 编译运行工程,只有警告没有错误 。
  • 修改.h文件,MGTwitterStatusesParser.h中修改为:@interface MGTwitterStatusesParser : MGTwitterXMLParser <NSXMLParserDelegate> {
  • 修改.h文件,MGTwitterXMLParser.h修改为:@interface MGTwitterXMLParser : NSObject <NSXMLParserDelegate> {
  • 再次编译运行,没有警告和错误。
  • 申请twitter开发工程的key值:(http://twitter.com/oauth_clients).
  • 在自己的controller中添加相应的twitter的view

.h文件中:

#import <UIKit/UIKit.h>

#import "SA_OAuthTwitterController.h" 
@class SA_OAuthTwitterEngine; 

@interface iphone_twitterViewController : UIViewController 
<UITextFieldDelegate, SA_OAuthTwitterControllerDelegate>  { 
    IBOutlet UITextField     *tweetTextField;  
    SA_OAuthTwitterEngine    *_engine; 


@property(nonatomic, retain) IBOutlet UITextField *tweetTextField; 

-(IBAction)updateTwitter:(id)sender;   
@end

.m文件中:

#import "iphone_twitterViewController.h" 
#import "SA_OAuthTwitterEngine.h" 
#define kOAuthConsumerKey        @""         //REPLACE With Twitter App OAuth Key  
#define kOAuthConsumerSecret    @""     //REPLACE With Twitter Ap

@implementation iphone_twitterViewController 
@synthesize tweetTextField; 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

- (void)viewDidAppear: (BOOL)animated {  
    if(!_engine){  
        _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];  
        _engine.consumerKey    = kOAuthConsumerKey;  
        _engine.consumerSecret = kOAuthConsumerSecret;  
    }  
    if(![_engine isAuthorized]){  
    UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];  
    if (controller){  
        [self presentModalViewController: controller animated: YES];  
    }  
    } 

-(IBAction)updateTwitter:(id)sender 

[_engine sendUpdate:tweetTextField.text];  

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 

- (void)viewDidUnload { 
}

- (void)dealloc { 
    [_engine release];  
    [tweetTextField release];  
    [super dealloc]; 

#pragma mark SA_OAuthTwitterEngineDelegate  
- (void) storeCachedTwitterOAuthData: (NSString *) data forUsername: (NSString *) username {  
    NSUserDefaults          *defaults = [NSUserDefaults standardUserDefaults];  
    [defaults setObject: data forKey: @"authData"];  
    [defaults synchronize];  

- (NSString *) cachedTwitterOAuthDataForUsername: (NSString *) username {  
    return [[NSUserDefaults standardUserDefaults] objectForKey: @"authData"];  
}  
#pragma mark TwitterEngineDelegate  
- (void) requestSucceeded: (NSString *) requestIdentifier {  
    NSLog(@"Request %@ succeeded", requestIdentifier);  

- (void) requestFailed: (NSString *) requestIdentifier withError: (NSError *) error {  
    NSLog(@"Request %@ failed with error: %@", requestIdentifier, error);  
}  
@end

 


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值