Ich entwickle eine Twitter Feed-Ansicht für eine iOS App. Ich habe TWRequest gefunden und es funktioniert genauso wie das, wonach ich gesucht habe. Aber: Ich bekomme einen Hinweis: "TWRequest ist veraltet: zuerst veraltet in iOS 6.0". Was sollte ich stattdessen verwenden?TWRequest ist in iOS 6.0 veraltet - was kann ich stattdessen verwenden?
Antwort
Auf iOS 6 sollten Sie die Social.framework
verwenden. Dies hat eine Klasse mit dem Namen SLRequest
.
Sie verwenden es fast auf die gleiche Weise wie die veraltete TWRequest
, aber Sie müssen angeben, dass es eine Twitter-Anfrage im Gegensatz zu einer Facebook-Anfrage ist.
Die gesamte Twitter.framework
wurde ab iOS 6 veraltet, da Apple Facebook und Weibo (ein chinesisches soziales Netzwerk) zu iOS 6 hinzugefügt hat, gruppierten sie alle sozialen Klassen in die neue Social.framework
.
Hinweis müssen Sie den Diensttyp für Twitter/Facebook, Beispiel angeben:
SLRequest *aRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodPOST
URL:myurl
parameters:myparams];
Seien Sie sicher, dass die documentation auszuchecken.
ist der komplette Code Text + Bild auf Ihren Twitter Account mit Twitter api
UIImage *img = [UIImage imageNamed:@"twitterImage.png"];
ACAccountStore *account = [[ACAccountStore alloc] init];
ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[account requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
if (granted == YES) {
// Populate array with all available Twitter accounts
NSArray *arrayOfAccounts = [account accountsWithAccountType:accountType];
if ([arrayOfAccounts count] > 0) {
ACAccount *acct = [arrayOfAccounts objectAtIndex:0];
NSDictionary *message = @{@"status": @"From my app"};
NSURL *requestURL = [NSURL URLWithString:@"https://upload.twitter.com/1/statuses/update_with_media.json"];
SLRequest *postRequest = [SLRequest
requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodPOST
URL:requestURL parameters:message];
NSData *data = UIImagePNGRepresentation(img);
[postRequest addMultipartData:data withName:@"media" type:@"image/png" filename:@"TestImage"];
postRequest.account = acct;
[postRequest performRequestWithHandler:
^(NSData *responseData, NSHTTPURLResponse
*urlResponse, NSError *error)
{
if (error) {
NSLog(@"%@",error.description);
}
else {
NSLog(@"Upload Sucess !");
}
}];
}
}
}];
Falls Sie auf der Integration TwitterKit von Twitter planen lädt die Tweets über Ihren benutzerdefinierten Twitter App ausführen dann diesem könnte dir helfen.
Eine weitere Alternative ist Twitter-API zu verwenden. Sie sollten Twitter Framework dafür haben.
tun dann folgenden Code:
NSString *statusesShowEndpoint = @"https://api.twitter.com/1.1/statuses/update.json";
NSDictionary *params = @{@"status": @"Hello, my first autopost tweet..."};
NSError *clientError;
NSURLRequest *request = [[[Twitter sharedInstance] APIClient]
URLRequestWithMethod:@"POST"
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 *dicResponse = [NSJSONSerialization
JSONObjectWithData:data
options:0
error:&jsonError];
NSLog(@"%@",[dicResponse description]);
}
else {
NSLog(@"Error code: %ld | Error description: %@", (long)[connectionError code], [connectionError localizedDescription]);
}
}];
}
else {
NSLog(@"Error: %@", clientError);
}
2015: Verwenden Sie "https://api.twitter.com/1.1/statuses/update.json" und beachten Sie auch, dass Fehler möglicherweise als JSON kommen zurück in die Antwortdaten. – prewett