REST APIを使って認証済みTwitter APIリクエストを作成できます。手動でもアクセスできますが、メソッドを使ったほうが便利なので可能であればそちらを推奨します。
注意
このメソッドを動作させるには、事前にユーザーがログインを完了させていなければなりません。
ツイートを一つ読み込み、一般的なツイートスタイルで表示します:
// Objective-C
// Fetches @jack's first Tweet
[[[Twitter sharedInstance] APIClient] loadTweetWithID:@"20"
completion:^(TWTRTweet *tweet,
NSError *error) {
// handle the response or error
}];
// Swift
// Fetches @jack's first Tweet
Twitter.sharedInstance().APIClient.loadTweetWithID("20") {
(tweet, error) -> Void in
// handle the response or error
}
// Objective-C
NSArray *tweetIDs = @[@"20", @"510908133917487104"];
[[[Twitter sharedInstance] APIClient]
loadTweetsWithIDs:tweetIDs
completion:^(NSArray *tweets,
NSError *error) {
// handle the response or error
}];
// Swift
let tweetIDs = ["20", "510908133917487104"]
Twitter.sharedInstance().APIClient
.loadTweetsWithIDs(tweetIDs) {
(tweets, error) -> Void in
// handle the response or error
}
一人のユーザーを読み込むために探す場合:
// Objective-C
[[[Twitter sharedInstance] APIClient] loadUserWithID:@"12"
completion:^(TWTRUser *user,
NSError *error)
{
// handle the response or error
}];
// Swift
Twitter.sharedInstance().APIClient.loadUserWithID("12") {
(user, error) -> Void in
// handle the response or error
}
他のTwitter APIエンドポイントにアクセスしたい場合、手動でリクエストを作成することを選べます。例えば以下のような方法でできます。:
// Objective-C
NSString *statusesShowEndpoint = @"https://api.twitter.com/1.1/statuses/show.json";
NSDictionary *params = @{@"id" : @"20"};
NSError *clientError;
NSURLRequest *request = [[[Twitter sharedInstance] APIClient]
URLRequestWithMethod:@"GET"
URL:statusesShowEndpoint
parameters:params
error:&clientError];
if (request) {
[[[Twitter sharedInstance] APIClient]
sendTwitterRequest:request
completion:^(NSURLResponse *response,
NSData *data,
NSError *connectionError) {
if (data) {
// handle the response data e.g.
NSError *jsonError;
NSDictionary *json = [NSJSONSerialization
JSONObjectWithData:data
options:0
error:&jsonError];
}
else {
NSLog(@"Error: %@", connectionError);
}
}];
}
else {
NSLog(@"Error: %@", clientError);
}
// Swift
let statusesShowEndpoint = "https://api.twitter.com/1.1/statuses/show.json"
let params = ["id": "20"]
var clientError : NSError?
let request = Twitter.sharedInstance().APIClient.
URLRequestWithMethod(
"GET", URL: statusesShowEndpoint, parameters: params,
error: &clientError)
if request != nil {
Twitter.sharedInstance().APIClient.
sendTwitterRequest(request) {
(response, data, connectionError) -> Void in
if (connectionError == nil) {
var jsonError : NSError?
let json : AnyObject? =
NSJSONSerialization.JSONObjectWithData(data,
options: nil,
error: &jsonError)
}
else {
println("Error: \(connectionError)")
}
}
}
else {
println("Error: \(clientError)")
}