I am looking for a step by step guide to implement Google OpenID+OAuth in our Webapplication running on Heroku for getting calendar/contacts data. I have looked at many documents and Q&A about this but still can't make things work and was wondering if anyone here knew of a place which describes the plugins, gems needed and a step by step guide. The reason for using the hybrid is that we need a permanent token from Google that we can track for users across multiple sessions.
Truly appreciate any help.
Best,
_KK
You cannot use Google's OpenID to access other service. So you will need to ask user to provide username/password when you want to access calendar (make sure it's SSL-ed!).
So for calendar you can use: GCal4Ruby.
But in general you can access user data using official Google GData gem.
Related
I just want to put an Google login on my main form login as an Alternative way of logging in to the Mob app that i was developing.I want on my main fomr to have a (Login with Google) but i dont have any idea how to do it. is there anyone can help me? this is only for educational purposes, i just want to enhance my programming skills.
I tried searching and Firebase auth always appears.
Firebase Auth is actually free to use for the auth section so it's not a bad option.
There are a lot of moving parts with this and learning by using Firebase as your core is a great way to get introduced without handling so much of the complications. If this is just for education my personal recommendation would be to learn Firebase methods first and then look into replacing it with your own implementation.
However, if you want to just use Google Auth using a native plugin and nothing else then there is a tutorial on IonicThemes.com which covers how to set it up.
You can read it here if you're fast:
https://ionicthemes.com/tutorials/about/ionic-google-login
This question will probably get deleted as it doesn't meet the guidelines to just post links to tutorials, but it's a lengthy process so I don't know what else StackOverflow expects me to offer in this instance. Perhaps just to vote to close your question.
I am a beginner trying out api for fun.
The problem is, lets say, I want to write a simple windows program with golang to let my friends read and edit one of the sheets saved on my google drive. How can I do this without having them download a credential file?
What I want it to do is simply redirect them to the Oauth Page right away, and if their email address is one recognized by the app it will grant them access to that google sheet.
What i think you need is to integrate your go app with Oauth protocol.
More specifically, with the Google provider.
This is mainly 3 steps:
add the oauth client to your application
something like this: https://github.com/golang/oauth2
See their docs on how to do it.
go to google dev documentation and see how to integrate google auth flow into the client: https://developers.google.com/identity/protocols/OAuth2
I'm not sure if google has something more specific for google drive integration and/or go-lang client in particular. Please do some searching.
make the glue code on your go app so that the user can interact with this (the login button (or command, if it is terminal based), error messages, logout, etc)
More questions will appear when you start to do this, however it is a great example to learn Oauth as well.
General guidelines:
https all the queries or oauth is basically useless
oatuh has many auth-flows and you must choose which one(s) you support. use whatever google documentation recommends for m2m scenario (machine 2 machine)
log errors so that your friends can send you a log file for you to debug issues
maybe set some feature flag so that you can simply disable this feature to run/test localhost ? maybe useful? you decide.
I'd want to get user's emailID from an Action on Google. I understand that Google Sign-In is the best way to do that. Even though I don't really need the user to sign in to the action, I think there is no other way to get user's email (please correct me if I'm wrong). But according to the documentation,
Google Sign-In for the Assistant is currently in developer preview. You can build Actions that use this feature, but they can't be published at this time.
However, Walgreens action does the same thing. I wanted to know how. I tried to search a lot, and ended up with these answers. I have done this already and it works. But I wanted to know, if there is any way to release an app using Google Sign-In.
If not, do I need to go through OAuth2.0 flow, and if so, I assume I'd need to have my own authentication system in place?
Please correct me if I'm wrong and help me find the best way to get user's emailID. I think there should be something easier than getting an authentication system in place and getting it to support OAuth2.
if there is any way to release an app using Google Sign-In.
You want the email id of the user. Google sign-in is nothing more than you getting the user's email address (inside a token that is signed by Google so you can verify it).
If you just get an email address as a "string" then you'd need to verify it before you can use it. So think of Google sign-in as an optimized UI flow to get a user's email address. Once you get the verified email address from Google, you can let them have access to the data on your site that is under that account.
Let me know if that is not clear.
From a timeline perspective, this should be out of developer preview within a month. Let me know if you want to try using it before that.
From my own research I think you are right. Until the Google Sign In account linking graduates from developer preview you would have to implement an OAuth workflow, which is a bit of a pain (although the implicit one doesn't look too bad). So perhaps the real question is ... when will Google Sign In account linking be fully available? Anyone from Google? Even a ballpark estimate would be useful.
Problem
Need to implement contacts importer/chooser on Rails4 project. Needed providers - Gmail, Facebook, Yahoo, LinkedIn, Outlook.
Researches
Tried omnicontacts and contacts gems but both has some limitations and maybe outdated for some providers.
There is commercial project which do this for you - CloudSponge , but I prefer open source.
Current Status
Implemented Linkedin contacts import using devise, omniauth, omniauth-linkedin.
Implemented Gmail contacts import using omnicontatcs.
Failed with other providers.
Queastion
Is there any other all-in-one solutions (maybe I missed something) which could be useful for my issue or I have to implement all things from scratch, maybe using already outdated gems/libs ?
Another thing I was thinking, maybe this task better to solve on client side using javascript libraries?
If you to try implement contacts importer in a do-it-youself way, the first goal will be proper learn OAuth2 and all the 4 authentication flows. I like this blog post explanation.
Then if you want to use a client-side-only solution for OAuth2, you'll need to use the Implicit flow.
For Google Contacts, you can find Implicit flow documentation here.
Disclaimer: I work for CloudSponge, and I'm a big fan of free/open-source solutions too. I even use Linux as my desktop :)
Does anyone know if (and how) I can build an application (Java/Ruby/whatever) doing REST or RPC calls to a social network like Orkut (using opensocial) to search for a user by name or email address? So far I know that I can list all friends for a particular user ID, but I want to search among all users. Would I need to code it as an app/gadget running inside the google sandbox or is there a way to get a list of matching user ID via REST?
So far I got this one to work: http://code.google.com/p/opensocial-ruby-client/wiki/GettingStarted. But with this API and the gadget linked there I only get people that are already linked to me...
Thanks for answers,
Martin
No, you can't do that. At least, OpenSocial doesn't have spec like that.
In addition, SNS normally have privacy policy which disables developers to poke around users who hasn't installed your app.
Think OpenSocial API access to private information is quite limited.