Sto sviluppando una visualizzazione Feed Twitter per un'applicazione iOS. Ho trovato TWRequest e funziona esattamente come quello che stavo cercando. Ma: ricevo un avviso: "TWRequest è deprecato: prima deprecato in iOS 6.0". Cosa dovrei usare invece?TWRequest è obsoleto in iOS 6.0: cosa posso usare invece?
risposta
Su iOS 6 è necessario utilizzare lo Social.framework
. Questo ha una classe chiamata SLRequest
.
Lo si utilizza quasi allo stesso modo del deprecato TWRequest
, ma è necessario specificare che si tratta di una richiesta di Twitter in contrasto con una richiesta di Facebook.
L'intero Twitter.framework
è diventato obsoleto a partire da iOS 6, poiché Apple ha aggiunto Facebook e Weibo (un social network cinese) a iOS 6, raggruppando tutte le classi sociali nel nuovo Social.framework
.
Nota è necessario specificare il tipo di servizio a Twitter/Facebook, Esempio:
SLRequest *aRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodPOST
URL:myurl
parameters:myparams];
essere sicuri di controllare la documentation.
Ecco un codice completo per caricare il testo + immagini al tuo account Twitter utilizzando 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 !");
}
}];
}
}
}];
Nel caso in cui si prevede di integrare TwitterKit da Twitter per eseguire i tweet tramite la vostra abitudine Twitter APP allora questo potrebbe aiutarti.
Un'altra alternativa è di usare Twitter API. Dovresti avere il framework di Twitter per questo.
Poi do seguente codice:
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);
}
- 1. GLSL - texture1D è obsoleto, cosa usare invece?
- 2. authenticateWithCompletionHandler: obsoleto: prima deprecato in iOS 6.0
- 3. CookieSyncManager è ora obsoleto, cosa posso invece utilizzare?
- 4. GKPeerPickerController è obsoleto in iOS 7
- 5. Cosa usare invece di org.jboss.resteasy.client.ClientRequest?
- 6. CFURLDestroyResource è ora obsoleto in iOS7. Qualcuno sa invece cosa usare?
- 7. GKSession è obsoleto in iOS7, cosa devo usare ora?
- 8. L'elemento "allinea" è obsoleto o non standard: cosa dovrei usare invece?
- 9. Perché Guava non ha post-condizioni? Cosa posso usare invece?
- 10. 'DayCalendarUnit è stato dichiarato obsoleto. Utilizzare NSCalendarUnitDay invece' non funziona
- 11. SetupSet() è obsoleto. Al posto di cosa?
- 12. Qualcuno sa quali metodi sono deprecati in IOS 6.0?
- 13. UUID iOS obsoleto corebluetooth
- 14. Eval è il male ... Allora cosa dovrei usare invece?
- 15. Cosa usare invece di XMLBeans ora che è stato ritirato?
- 16. Interface orientamento in iOS 6.0
- 17. Orientamento obsoleto in iOS 6
- 18. CGContextShowTextAtPoint deprecato: cosa devo usare ora?
- 19. Ora che il controller è deprecato, cosa devo invece usare?
- 20. Groovy String.toURL è deprecato: perché e cosa dovremmo usare invece?
- 21. Cosa usare invece di associazioni polimorfiche?
- 22. Nim `Attenzione: re è deprecato`, cosa usare invece?
- 23. Come gestire "SubfieldBase è stato dichiarato obsoleto. Utilizza invece Field.from_db_value."
- 24. setKeepAliveTimeout è obsoleto in iOS9
- 25. "L'attributo frameborder sull'elemento iframe è obsoleto. Usa invece CSS."
- 26. Perché non è consigliabile usare attach() in R, e cosa dovrei usare invece?
- 27. colore vista tabella background Gruppo è deprecato in iOS 6.0
- 28. Cosa usare invece di UIScreen.mainScreen(). ApplicationFrame per swift in ios 9.1?
- 29. UIAlertView causa l'arresto in iOS SDK 6.0
- 30. RKResponseDescriptor in RESTKit è obsoleto
2015: Usa "https://api.twitter.com/1.1/statuses/update.json" e anche notare che gli errori molto probabilmente possono tornare come JSON in il responseData. – prewett