为Cocoa开发者提供的Twitter API
由Nathaniel Symer 创建
FHSTwitterEngine
可以
为什么你应该使用 FHSTwitterEngine
该项目从 OAuthConsumer 开始。
FHSTwitterEngine.h
和 FHSTwitterEngine.m
添加到项目中SystemConfiguration.framework
在需要的地方添加导入
#import "FHSTwitterEngine.h"
设置
FHSTwitterEngine
[[FHSTwitterEngine sharedEngine]permanentlySetConsumerKey:@"<consumer_key>" andSecret:@"<consumer_secret>"];
或者使用每个请求后清除的临时消费者
[[FHSTwitterEngine sharedEngine]temporarilySetConsumerKey:@"<consumer_key>" andSecret:@"<consumer_secret>"];
设置访问令牌代理(请参阅标题)
[[FHSTwitterEngine sharedEngine]setDelegate:myDelegate];
通过OAuth登录
UIViewController *loginController = [[FHSTwitterEngine sharedEngine]loginControllerWithCompletionHandler:^(BOOL success) {
NSLog(success?@"L0L success":@"O noes!!! Loggen faylur!!!");
}];
[self presentViewController:loginController animated:YES completion:nil];
通过XAuth登录
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
@autoreleasepool {
NSError *error = [[FHSTwitterEngine sharedEngine]getXAuthAccessTokenForUsername:@"<username>" password:@"<password>"];
// Handle error
dispatch_sync(dispatch_get_main_queue(), ^{
@autoreleasepool {
// Update UI
}
});
}
});
清除当前消费者密钥
[[FHSTwitterEngine sharedEngine]clearConsumer];
加载保存的访问令牌(在调用API时调用)
[[FHSTwitterEngine sharedEngine]loadAccessToken];
清除您的访问令牌
[[FHSTwitterEngine sharedEngine]clearAccessToken];
检查会话是否有效
[[FHSTwitterEngine sharedEngine]isAuthorized];
进行API调用(POST和GET)
dispatch_async((dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
@autoreleasepool {
id twitterData = [[FHSTwitterEngine sharedEngine]postTweet:@"Hi!"];
// Handle twitterData (see "About GET Requests")
dispatch_sync(dispatch_get_main_queue(), ^{
@autoreleasepool {
// Update UI
}
});
}
});
单例模式允许程序员在不同的范围内使用库,而无需手动保持对FHSTwitterEngine
对象的引用。当应用程序被杀死时,FHSTwitterEngine
使用的任何内存都将被释放。
虽然您可以用于线程的任何线程技术,但我推荐 Grand Central Dispatch (GCD)。
FHSTwitterEngine
会尝试在实际上发送请求之前预先检测请求中的错误。这包括缺失参数和授权不足。如果FHSTwitterEngine
检测到用户未登录,它将尝试使用其代理加载访问令牌。此过程旨在防止不良请求被无端发送。
大多数方法返回id
。返回的对象可以是以下任何一个:
NSMutableDictionary
NSMutableArray
UIImage
NSString
NSError
空