È possibile rispondere a un tweet utilizzando SLComposerViewController? Qualcuno l'ha già fatto prima?C'è un modo per rispondere a un particolare tweet tramite SLComposerViewController
risposta
okay we goooo. Per prima cosa dobbiamo generare un SLComposeViewController ogni volta che viene toccato un pulsante di risposta. Una volta avviato SLComposeViewController, lo scaviamo in profondità e cerchiamo il pulsante "invia" e disabilitiamo l'azione associata denominata sendButtonTapped:
. Dopo aver rimosso l'azione nativa, associamo la nostra azione personalizzata a sendButton.
Heres il codice per farlo:
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
userTypedTweet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[userTypedTweet setInitialText:[NSString stringWithFormat:@"%@",authorName]];
sendButton = [self tweetSendButton:userTypedTweet.view];
NSLog(@"%@",sendButton);
NSArray * actions = [sendButton actionsForTarget:userTypedTweet forControlEvent:UIControlEventTouchUpInside];
for (NSString * action in actions)
if([action isEqualToString:@"sendButtonTapped:"])
[sendButton removeTarget:userTypedTweet action:NSSelectorFromString(action) forControlEvents:UIControlEventTouchUpInside];
[sendButton addTarget:self action:@selector(replyToTheTweet) forControlEvents:UIControlEventTouchUpInside];
[self presentViewController:userTypedTweet animated:YES completion:^{}];
}
Ora nella nostra azione personalizzata (replyToTweet nel mio caso): estraiamo i commenti di input dell'utente. e quindi passare tutti quelli all'API di Twitter. Twitter si prenderà cura di tutto il resto !!
-(void)replyToTheTweet
{
SingletonClass *myAccount= [SingletonClass sharedobject];
UITextView * textView = [self tweetTextView:self.userTypedTweet.view];
NSLog(@"we have the value :%@",textView.text);
NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];
[parameters setObject:[myAccount.currentTweet objectForKey:@"id_str"] forKey:@"in_reply_to_status_id"];
[parameters setObject:textView.text forKey:@"status"];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodPOST URL:[NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update.json"] parameters:parameters];
NSLog(@"%@",request.parameters);
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if (responseData)
{
NSError *parseError = nil;
id json = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&parseError];
if (!json)
NSLog(@"Parse Error: %@", parseError);
else
{
UIAlertView *alertOK = [[UIAlertView alloc] initWithTitle:@"Successful" message:@"Tweet was succesfully replied to" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
dispatch_async(dispatch_get_main_queue(), ^{[alertOK show];});
}
}
else
{
NSLog(@"Request Error: %@", [error localizedDescription]);
}
}];
[self.userTypedTweet dismissViewControllerAnimated:YES completion:nil];
}
codice per mettere a nudo l'UITextView è:
- (UITextView *)tweetTextView:(UIView *)view
{
for (UIView * subview in view.subviews)
{
if ([subview isMemberOfClass:[UITextView class]])
return (UITextView *)subview;
UITextView * textView = [self tweetTextView:subview];
if (textView) return textView;
}
return nil;
}
IMP: ricordarsi di smontare l'UIButton di SLComposeViewController pure !!
composeView.subviews è vuoto. non potevo avere la vista del pulsante, qualche idea? – ramo
Poiché SLComposeViewController eredita da View Contoller, è necessario rimuovere il SLComposeViewcontroller dalla proprietà UITextView e recuperarne il contenuto. Quindi passiamo le informazioni raccolte all'API di Twitter insieme allo "in_reply_to_status_id"
. Facile ventoso !! Fammi sapere se hai bisogno di aiuto con i codici! Spoiler non l'ho ancora implementato .. ma dato che sono stato in grado di recuperare l'input dell'utente da SLComposerViewController, suppongo che il resto sarà un pezzo di torta
- 1. Ottenere risposte tweet a un particolare tweet da un particolare utente
- 2. Come utilizzare Twitter4j api per rispondere su un tweet?
- 3. Twitter API per ottenere recenti tweet di un utente particolare
- 4. Pubblicazione di un tweet tramite Oauth
- 5. C'è un modo per ottenere il conteggio preferito di un tweet?
- 6. Come trovare tutti i "retweet con commenti" per un particolare Tweet usando l'API?
- 7. C'è un modo per accedere a R tramite il web?
- 8. c'è un modo per cercare un set di diff per una stringa particolare per un file?
- 9. Esiste un modo per forzare Checkstyle a ignorare un particolare avviso nel codice sorgente?
- 10. Come posso rispondere a un POST nel mio script php?
- 11. C'è un modo per sovrascrivere un file di stile bibtex per una particolare voce?
- 12. Invio di tweet da app per iPhone tramite Oauth
- 13. Come rispondere ad una chiamata tramite adb
- 14. Come ottenere un elemento particolare tramite l'analisi xml di JAXB?
- 15. Git pull fino a un commit particolare
- 16. Come rispondere a un recensore nell'App Store di Apple
- 17. Come rispondere automaticamente "sì" a un prompt in PowerShell?
- 18. Un modo corretto per verificare un particolare valore .data() in un oggetto jQuery?
- 19. Come rispondere a una chiamata in modo programmatico?
- 20. query SQL per un particolare scenario
- 21. Matplotlib: rispondere a eventi click
- 22. C'è un modo per passare jvm args tramite riga di comando a maven?
- 23. jQuery: come arrivare a un particolare figlio di un genitore?
- 24. .htaccess forza SSL per un particolare dominio
- 25. Selezionare i dati a un particolare livello da un MultiIndex
- 26. C'è un modo per limitare i tweet nel widget Timeline di Twitter?
- 27. restituire un tweet degli utenti con tweepy
- 28. C'è un modo per chiamare automaticamente un metodo particolare immediatamente dopo l'esecuzione di tutti i costruttori?
- 29. Ottenere file driver per un particolare dispositivo
- 30. C'è un modo per un particolare div di ignorare il posizionamento div del genitore?
Si dovrebbe essere in grado di farlo con 'SLRequest'. Avrei letto https://dev.twitter.com/docs – Desdenova
Grazie Desdenova !! L'ho gestito – holierthanthou84
Nessun problema. Sarebbe bello per riferimento futuro se potessi mostrarci come lo hai fatto e contrassegnarlo come risposta valida. – Desdenova