Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/natesymer/FHSTwitterEngine
Twitter API for Cocoa developers
https://github.com/natesymer/FHSTwitterEngine
Last synced: 6 days ago
JSON representation
Twitter API for Cocoa developers
- Host: GitHub
- URL: https://github.com/natesymer/FHSTwitterEngine
- Owner: natesymer
- License: mit
- Created: 2012-08-24T19:27:54.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2017-02-21T15:58:56.000Z (almost 8 years ago)
- Last Synced: 2024-05-22T19:14:06.492Z (7 months ago)
- Language: Objective-C
- Homepage:
- Size: 1.05 MB
- Stars: 213
- Watchers: 20
- Forks: 77
- Open Issues: 9
-
Metadata Files:
- Readme: README.markdown
- Changelog: changelog.markdown
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - FHSTwitterEngine
- awesome-ios-star - FHSTwitterEngine
README
FHSTwitterEngine
================***Twitter API for Cocoa developers***
Created by [Nathaniel Symer](mailto:[email protected])
`FHSTwitterEngine` can:
- Authenticate using OAuth and/or xAuth.
- Make a request to just about every API endpoint.Why you should use `FHSTwitterEngine`:
- Single .h/.m pair
- No dependencies
- Shared instance
- ScientificThis project started with [OAuthConsumer](.github/oauthconsumer.md).
## Setup
### [CocoaPods](https://cocoapods.org/)
```ruby
pod 'FHSTwitterEngine', '~> 2.0'
```### Manual
1. Add `FHSTwitterEngine.h` and `FHSTwitterEngine.m` to your project
- Link against `SystemConfiguration.framework`
- Enable ARC for both files if applicable## Usage
> Add import where necessary
#import "FHSTwitterEngine.h"
> Set up `FHSTwitterEngine`
[[FHSTwitterEngine sharedEngine]permanentlySetConsumerKey:@"" andSecret:@""];
> Or with a temporary consumer that gets cleared after each request[[FHSTwitterEngine sharedEngine]temporarilySetConsumerKey:@"" andSecret:@""];
> Set access token delegate (see [header](FHSTwitterEngine/FHSTwitterEngine.h))
[[FHSTwitterEngine sharedEngine]setDelegate:myDelegate];
> Login via OAuth:
UIViewController *loginController = [[FHSTwitterEngine sharedEngine]loginControllerWithCompletionHandler:^(BOOL success) {
NSLog(success?@"L0L success":@"O noes!!! Loggen faylur!!!");
}];
[self presentViewController:loginController animated:YES completion:nil];> Login via XAuth:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
@autoreleasepool {
NSError *error = [[FHSTwitterEngine sharedEngine]getXAuthAccessTokenForUsername:@"" password:@""];
// Handle error
dispatch_sync(dispatch_get_main_queue(), ^{
@autoreleasepool {
// Update UI
}
});
}
});> Clear the current consumer key
[[FHSTwitterEngine sharedEngine]clearConsumer];
> Load a saved access_token (called when API calls are made):
[[FHSTwitterEngine sharedEngine]loadAccessToken];
> Clear your access token:
[[FHSTwitterEngine sharedEngine]clearAccessToken];
> Check if a session is valid:
[[FHSTwitterEngine sharedEngine]isAuthorized];
> Do an API call (POST and 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
}
});
}
});## The "Singleton" Pattern
The singleton pattern allows the programmer to use the library across scopes without having to manually keep a reference to the `FHSTwitterEngine` object. When the app is killed, any memory used by `FHSTwitterEngine` is freed.
## Threading
While you can use any threading technology for threading, I recommend [Grand Central Dispatch (GCD)](https://developer.apple.com/library/ios/documentation/Performance/Reference/GCD_libdispatch_Ref/).
## General Comments
`FHSTwitterEngine` will attempt to preemptively detect errors in your requests, before they are actually sent. This includes missing parameters, and a lack of authorization. If `FHSTwitterEngine` detects that a user is not logged in, it will attempt to load an access token using its delegate. This process is designed to prevent bad requests from being needlessly sent.
## About requests
Most methods return `id`. The returned object can be a(n):
- `NSMutableDictionary`
- `NSMutableArray`
- `UIImage`
- `NSString`
- `NSError`
- `nil`## Contact
- Open an [issue](https://github.com/fhsjaagshs/FHSTwitterEngine/issues)
- [Daniel Khamsing](https://twitter.com/dkhamsing)
- [Nathaniel Symer](mailto:[email protected])