iphone调用Twitter相应api

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


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

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

实现的效果图:

IMG_0126IMG_0127IMG_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;

@interfaceiphone_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 WithTwitterApp 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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值