Ist es möglich, mit SLComposerViewController auf einen Tweet zu antworten? Hat es jemand schon einmal gemacht?Gibt es eine Möglichkeit, über SLComposerViewController auf einen bestimmten Tweet zu antworten
Antwort
okay hier wir Goooo. Zuerst müssen wir jedesmal einen SLComposeViewController generieren, wenn eine Antwort-Schaltfläche angetippt wird. Sobald der SLComposeViewController gestartet ist, graben wir tief hinein und suchen nach der Schaltfläche "Senden" und deaktivieren die zugehörige Aktion namens sendButtonTapped:
. Nach dem Entfernen der nativen Aktion verknüpfen wir unsere eigene benutzerdefinierte Aktion mit dem sendButton.
Heres der Kodex, das zu tun:
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:^{}];
}
Jetzt in unserer Custom Action (replyToTweet in meinem Fall): Wir haben die Benutzereingabe Kommentare extrahieren. und dann die ganze Menge an die Twitter-API übergeben. Twitter kümmert sich um den Rest !!
-(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];
}
-Code der UITextView abzustreifen ist:
- (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: Denken Sie daran, auch die UIButton von SLComposeViewController auszuziehen !!
composeViewsviews ist leer. Ich konnte den Knopfblick nicht bekommen, irgendeine Idee? – ramo
Da SLComposeViewController von View Contoller erbt, müssen wir den SLComposeViewcontroller von der UITextView-Eigenschaft entfernen und dessen Inhalt abrufen. Dann übergeben wir die gesammelten Informationen zusammen mit der "in_reply_to_status_id"
an die Twitter API. Einfach luftig !! Lass mich wissen, wenn du Hilfe mit Codes brauchst! Spoiler Ich habe es noch nicht implementiert .. aber da ich die Benutzereingaben von SLComposerViewController abrufen konnte, nehme ich an, dass der Rest ein Stück Kuchen sein wird.
- 1. Wie benutze Twitter4j api um auf einen Tweet zu antworten?
- 2. Gibt es eine Möglichkeit, HTTP-Fehler Antworten 5xx und 4xx
- 3. Gibt es eine Möglichkeit, Standardbilder Ordner über Javascript zu erkennen?
- 4. Gibt es eine Möglichkeit, einen Zweig auf Heroku zu löschen
- 5. Gibt es eine Möglichkeit, Varnish zu zwingen, den Cache-Control-Header auf 403 Antworten zu lesen?
- 6. Gibt es eine Möglichkeit, einen bestimmten Absatz auf einer Seite ohne Anker zu verknüpfen?
- 7. Gibt es eine Möglichkeit, Hubot auf alle Nachrichten antworten zu lassen, die keine Befehle sind?
- 8. Tweepy Get Tweets als Antwort auf einen bestimmten Tweet
- 9. Gibt es eine nicht-Java, plattformübergreifende Möglichkeit, die zugehörige Anwendung für einen bestimmten Dateityp zu starten?
- 10. Gibt es eine Möglichkeit, einen Zweig in GIT zu sperren
- 11. Gibt es eine Möglichkeit, einen Z-Index-Kreis zu erstellen?
- 12. Gibt es eine Möglichkeit, Konsolenprogramme über die Befehlszeile zu debuggen?
- 13. Gibt es eine Möglichkeit, einen SQL Server-Trigger nur für einen bestimmten Ausführungsumfang zu deaktivieren?
- 14. Gibt es eine Möglichkeit, einen Thread auf unbestimmte Zeit anzuhalten?
- 15. Gibt es eine Möglichkeit, mit OneNote über Code zu kommunizieren?
- 16. Gibt es eine Möglichkeit, Creeps zu löschen?
- 17. Gibt es eine kurze Möglichkeit, indexOf über 100 zu schreiben?
- 18. Gibt es eine Möglichkeit, einen Magento-Indexer-Prozess zu stoppen?
- 19. golang: Gibt es eine Möglichkeit, über bestimmten Monat oder Woche zu iterieren
- 20. Gibt es eine Möglichkeit, einen JSON über einen POI mit seiner CID zu erhalten?
- 21. Gibt es eine Möglichkeit, einen Dateityp mit Webpack zu ignorieren?
- 22. Gibt es eine Möglichkeit, einem Optionselement einen Rahmen zu geben?
- 23. Gibt es eine Möglichkeit, "träge" zu lesen?
- 24. Gibt es eine Möglichkeit, ein Kalenderereignis über UIActivityViewController zu senden?
- 25. Gibt es eine Möglichkeit, über ein Wörterbuch zu iterieren?
- 26. Gibt es eine Möglichkeit, Sound über PowerShell zu erkennen?
- 27. Gibt es eine Möglichkeit, halbtransparent auf eine PictureBox zu malen?
- 28. Erlaube Rest-API, nur auf einen bestimmten Server zu antworten
- 29. Gibt es eine Möglichkeit, einen Subprozess mit Pydev zu debuggen?
- 30. Gibt es eine Möglichkeit, Webkonsolenfehler zu erkennen?
Sie sollten das mit 'SLRequest' machen können. Ich würde lesen https://dev.twitter.com/docs – Desdenova
Dank Sdenova !! Ich schaffte es – holierthanthou84
Kein Problem. Wäre toll für zukünftige Referenz, wenn Sie uns zeigen könnten, wie Sie es getan haben und es als gültige Antwort markieren. – Desdenova