iOS 6 Twitter share without using system account - ios

On a current project I would like to let a user that does NOT have a Twitter account setup login and tweet. Use case: this area of the app is being used by many different end users as part of a check-in process. It is not their personal iPad, they just use it for about 10 minutes to check-in for an event. During that check-in process I want to let them share to FB and Twitter if they choose.
I was able to accomplish the Facebook share without using the system account using Facebook's presentFeedDialogModallyWithSession API, which works great. Is there a similar API in the Twitter SDK? Is there another way I could do this that leverages the Social or Twitter framework?
Recommendations greatly appreciated.

You cannot do this with the built-in twitter SDK. You will need to use the "old" way of doing this, which is via oAuth or xAuth. A good framework for this can be found on github called FHSTwitterEngine. You will need to make your own UI for what you do with twitter itself, but it handles the login/authentication for you as much as possible.
Also this page may be useful to find other 3rd party frameworks (that is updated by twitter themselves) if you need to go outside of their regular SDK and the above does not get you what you want.

Related

How to authenticate using the installed Twitter app

If the user is logged-in with the native Twitter app installed, I want my app to open the Twitter app to request authorization.
I already implemented the flow to get the oauth_token in order to start the login process through Twitter's api. Only, the current API Documentation do not mention anything about how to use the native iOS app in the process. It only sends back a url for the user to log in.
let url = URL(string: "https://api.twitter.com/oauth/authorize?oauth_token=\(result.oauthToken)")!
DispatchQueue.main.async {
UIApplication.shared.open(url)
}
On getting the requested oauth_token, I get this link. Opening the link will display a Webview to login. Not the native Twitter iOS app.
I tried to use a deeplink to manually launch the Twitter app, but I couldn't found any resources on how to setup the link properly.
So far I have tried things like:
twitterauth://authorize?consumer_key=[KEY]&consumer_secret=[SECRET]&oauth_callback=swifter-[KEY]
or
twitterauth://authorize?oauth_token=\(result.oauthToken)
without any success...
As mentioned in another post, Clubhouse has implemented exactly this flow. So it is possible. The question is how ? 😅
This flow seems to have not been officially supported since the retirement of TwitterKit on May 1, 2018. Any applications that still offer this functionality to their end users likely have some sort of partnership with Twitter to allow for this which is otherwise undocumented publicly.
The reasoning for this was detailed sparsely in a related Twitter Developer Forums thread:
Unfortunately at this time we have had to make some incremental adjustments that are not so smooth for everyone; especially as you’ve found, for mobile app developers. We’re in the middle of a transition to a new API platform (via Twitter Developer Labs) and there will be some changes as we go along - we are asking for your feedback to help us, and if you check the ideas, authentication and authorization is something we’ve heard a lot about.
I cannot tell you today exactly when we’ll get to an enhanced solution, but this is something we are actively working on.
Direct link
The official guidance is to use the traditional WebView method until Twitter officially re-releases this capability:
I don’t believe that this is possible any longer, so I would encourage you to use the full OAuth flow. I apologise that this may not be what your users prefer, but this is the documented way to gain authorisation (we do not document or support URL schemes for the native iOS app).
Direct link
We do not support or document any means of users signing in to Twitter outside of the OAuth flow; any use of undocumented features is subject to change without notice.
Direct link
As linked above Twitter appears to be soliciting feedback on this via their UserVoice page, should you feel so inclined to suggest the re-implementation of such a feature.

Receiving information from social media into iOS

As the title suggests I want to add Social media extensions into my iOS application, I have seen multiple tutorials on how to publish to an external source e.g. Facebook, Twitter, Instagram etc... which seems easy enough.
Now my question is it possible to do the reverse and instead retrieve information from these external factors? For example if I set the application to look directly at my Facebook profile when loaded and retrieve my Facebook status's.
I've heard of the concept of a Facebook Graph API which I plan on learning of the next couple of weeks. I'm looking for any resource materials or videos which I can use to learn from. I'm currently looking through Facebook's developers options but any additional information would be great.
You're going to want to use their official API. These links are a good starting point.
Facebook SDK for iOS
Twitter SDK for iOS
Instagram support for iOS

Restrictions of using Social framework for a Twitter app?

I'm looking into making a new app which integrates heavily with Twitter, and I'm trying to find out if the Accounts and Social framework is capable of that.
It's worked in the past for basic calls, but it's not stated anywhere what its limits are - can it be used for a full-blown Twitter app?
Integrating with Twitter manually, I know involves asking the user to sign in, and means a cap of 100k tokens. Are there any caveats of using the Social framework instead?
You can use the API without users signing in to view most everything. Read the docs: https://dev.twitter.com/rest/public/search

Using Google + API and LinkedIn API within a desktop application (without prompting user for username-password)

I'm going to create a page which will download user's activity and save it in an .xml file because my iphone app needs to process it. The problem is that I cannot prompt the user for login-password... so I was wondering if there is a sort of permanent key that I can use to access into linkedin and gplus?
Thank you.
Google+
I can field the Google+ part of your question :)
You can access your users' public activity using the REST API's activity list method. To identify who they are you'll need to send them through an OAuth flow during which they will authorize you to know who they are on Google+.
The best way to get started doing server side OAuth flows in Google+ is to grab one of the starter projects and go through the included readme. That will give you a working project to copy code out of, or develop upon.
I'd include a code sample to show you how it works, but I don't know what would best apply to your back end :)
Linkedin
I'm far from an expert on their APIs, but it looks like the flow would be similar using OAuth.

Share on Facebook / Twitter / E-mail feature using PhoneGap / jQueryMobile

I'm coding an app for iOS / WP7 / Android using PhoneGap and it has to allow the user to publish comments to its facebook wall / twitter or send it by e-mail.
What is the easy way to face these tasks? any common approach? maybe a plugin? I have seen some similar posts in stackoverflow but none of them seems to offer a plain solution for all platforms...
Thanks
Here's a nice one, it's a JQuery plugin that not only has a nice interface but also provides the implementation details (link) to actually share something on each one of those frameworks!
jQuery social media share
If you want more access (like FB Wall), you'll need to actually code against the FB SDK (in javascript, not that hard but tons of functionality!).
PS: I am not affiliated in any way to this plugin or to it's author
You can use JavaScript based API's to make calls from your native apps that are not platform specific (so you can implement the same code in several native apps).
For instance, here is a link to the Facebook JavaScript API: http://developers.facebook.com/docs/reference/javascript/
For sending email, you could allow your users to compose the email in your app, then use an AJAX call to send the data to your server where your server-side script can send the email.
here is a implemetation with javascript for facebook, email and twitter in a few lines of code: http://www.sebastianviereck.de/en/mobile-multi-share-implementation-with-jquery-mobile/

Resources