How can I open a Twitter tweet using the native Twitter app on iOS?
Asked Answered
H

3

64

A tweet can be opened by Safari with a link of this format:

http://twitter.com/1Direction_X/statuses/197752514391715842

On iOS 5, Twitter is built-in. How can I open the above tweet using the native Twitter app called from my app?

Harald answered 3/5, 2012 at 2:22 Comment(0)
R
180

This is how you access other apps from your own. Just find the proper url to send for accessing status. I've included a list that should have most of the important ones. Including status finding.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"twitter://status?id=12345"]];

twitter://user?screen_name=lorenb

twitter://user?id=12345

twitter://status?id=12345

twitter://timeline

twitter://mentions

twitter://messages

twitter://list?screen_name=lorenb&slug=abcd

twitter://post?message=hello%20world

twitter://post?message=hello%20world&in_reply_to_status_id=12345

twitter://search?query=%23hashtag

Note: It can be important to make sure the user has twitter installed or this will cause a crash. So I recommend adding this in an if statement before you try to send them to twitter.

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"twitter://"]];
Rusk answered 3/5, 2012 at 2:33 Comment(16)
Any idea how you can search for a hash tag?? I've tried NSURL *twitterURL = [NSURL URLWithString:[NSString stringWithFormat:@"twitter://search?q=%@", hashTag]]; but no luck...Unmusical
I don't know sorry. You may not be able to. THis isn't the entire Twitter API just a URLScheme for the app. They may not have built that function in.Rusk
If the check fails (user does not have Twitter installed) I would fall back to launching the corresponding profile/etc. on SafariAlary
On binpress I have a Twitter Smart Link that if Twitter fails will open up the link in a UIWebView Modal within the app. binpress.com/app/in-app-twitter-smart-link/204Rusk
twitter://search?query=%23hashtagPyrogenous
Nice one @Pyrogenous I'll add it to the post incase someone else comes along.Rusk
Can I attach a media (picture and|or video) along the message url scheme. (i.e. twitter://post?message=hello%20world)Fluid
You could easily attach a link to a picture or video obviously. And Twitter also supports something called mediaIDs. I think it works such as ?message=hello%20world&media_ids= 471592142565957632 but to use mediaIDs you still need to manage uploading content directly to Twitter. I think the easiest way would be to use a more open service like imgur to upload the photo in the background, then grab the link, add it to the tweet, then activate the URL scheme. I don't think Twitter's image service is very open.Rusk
more info on the twitter side of things here dev.twitter.com/rest/reference/post/statuses/… and here dev.twitter.com/rest/public/uploading-mediaRusk
Is there a URL for sending direct message?Janise
@RyanPoolos how do I send pre-filled text message as a direct message to my followers using nsurl e.g.: "twitter://messages=(msg) - not working" expecting similar to whatsapp nsurl "whatsapp://send?text=(msg)"Boisvert
At the time of this post the Twitter URL scheme didn't support direct messages. Only twitter://post?message=XXX In today's world, its much better to trigger the iOS Twitter Share sheet instead and post without leaving the app.Rusk
Is posible share an image? something like twitter://post?message=hello%20world&media_id=4324324Fluorescence
I believe to upload media you'd need to use the Twitter API because you'd need to upload the media as well. However if you just want to include media, you could upload it yourself then pass a url as part of the message. Twitter is pretty good about expanding URLs into visuals.Rusk
I am also interested in passing a media_id to the Twitter app (having already uploaded it to Twitter using their API). Does anyone know if this is possible? media_id= and media_ids= does not seem to work..Kenyon
Is there a similar URL for switching to one of my multiple accounts set up in the iOS Twitter app?Menadione
M
1

I would go with below approach...

NSURL *twitterURL = [NSURL URLWithString:@"fb://profile/<profile_id>"];
if ([[UIApplication sharedApplication] canOpenURL:twitterURL]) {
    [[UIApplication sharedApplication] openURL:twitterURL];
} else {
    WebViewViewController *secondView = [self.storyboard instantiateViewControllerWithIdentifier:@"webinterface"];

    secondView.headerLabel = @"Facebook";
    secondView.webPath = @"https://www.facebook.com/pages/<link_for_page>";

    [self.navigationController pushViewController:secondView animated:YES];
}

in WebViewViewController I have webview and I am opening link there...

basically its like if you don't have Twitter on iPhone, it will open in WebView...

Merkel answered 11/8, 2013 at 18:2 Comment(2)
Are you sure this is for opening Twitter..? ;)Capriola
@Capriola : Thanks for catching this... Atlast after 2.5 years... ;)Merkel
U
-1

My apologies if this has already been answered, but the schema for posting a message with a hashtag is:

twitter://post?message=hello%20world%23thisisyourhashtag.  

Just replace thisisyourhashtag with the hashtag that you would like users to post.

Urger answered 8/3, 2016 at 21:28 Comment(1)
This isn't actually a schema specific to hashtags. Any message to be sent should be encoded before using it in a URL. During the encoding, any hash signs will become %23.Beanpole

© 2022 - 2024 — McMap. All rights reserved.