I have a simple app that has no server communication. Where is the best place to store API keys? Right now , I hardcode them in as I'm not overly concerned with the usage since it's a small app but as I start working with a team on other apps, I'd like to follow best practices.
You should use dotenv for storing your API keys in any javascript project
Related
I am working on a simple mobile app with Angular and NativeScript. I can't seem to understand the difference between using an Angular service to share information between components and using NativeScript's applications-settings. They both seem to do very similar things.
I started using a service to store information such as userId, username, phoneNumber, name, jobTitle, etc., which get retrieved in most of the components I am using. That is working fine; however, I just discovered that I could do the same with the application-settings module.
When should I use a service and when should I use application-settings? What is the most efficient approach?
Angular Services save data in the application life cycle, it means if you close the app, the data will not exist anymore.
But if you want to save data and use them whenever you want to open the app, you can use application-settings. It's actually a native module. The module uses SharedPreferences on Android and NSUserDefaults on iOS. It's something like localStorage on the web.
My single page app is hosted on Google's cloudstore. I love that I don't have to worry about a server. The app is, naturally, javascript heavy.
Now I would like to add a feature where users can store some data, generate a link to be shared with others and retrieve stored data. Think of a pastebin where some snippet of text is saved and a unique link is generated to be shared with others.
In fact, if it helps, think of this as my attempt to create a pastebin without having to setup a server.
It looks like Google's cloud datastore nosql solution is what I want. Given a key, it will return a snippet of text. However, all the examples on the documentation page imply that I have to setup a back end service using python, node, etc.
Questions:
Can't I just read and write from a web page, perhaps using ajax style http call (since I need to get and put text snippets once data has already been loaded)? I believe I can take care of cross-origin issues by changing some configs in the cloudstore static website server.
Obviously I don't want to serve any encryption keys from the web page. I'm hoping that since my site is served from Google as well, I can configure the nosql service handle permissions intelligently for this scenario.
Is there any documentation which shows how to do this correctly?
Google Datastore is not supposed to be used from client side, it's a served side database. You cannot do that w/o having server side code to authenticate, authorize and validate db related requests.
But there're an alternative. Firebase is a ready to use backend for client side applications, including Javascript apps. It's a separate project, that belongs to Google but not (yet?) part of Google Cloud. Take a look - https://www.firebase.com/
Although the API Rest is still beta, it is possible now to connect from a web client or anything RESTful capabilities. https://cloud.google.com/datastore/reference/rest/
I am in the middle of building a PhoneGap (Cordova) app which I would like to be able to talk to a Django site of mine. The steps needed to get the app working are:
Authenticate the user (stay logged-in across app restarts) (e.g. get session cookie from Django for communication with the service - where to store?). Note: The Django endpoint uses https.
When app receives push notification load some data from my django site.
Make selection on data and submit response back to my django site (will need the csrf token?)
I was able to sort out the push notifications but now I am wondering which solution would work best for the communication with Django.
As I understand there are two possible approaches:
Either to implement a REST service with something like tastypie or
try to setup the communication via ajax (e.g. jQuery)
At the moment I am thinking that going simply ajax might be the best approach since the app is fairly small and there are no additional requirement for a REST API.
It would be great if anyone could give me any pointers on how to solve this or share some experiece / code. Especially the steps of the authentication process are unclear to me.
I am not sure if this is still an open question but it is sure an interesting one.
I would strongly suggest on using the django-tastypie and you could start by using the docs which are indeed a great point of reference.
My experience until now has shown that I should always start by making my api clear(and rest) than choosing an easier faster solution(e.g. ajax) because if your app is a successful one, frameworks like tastypie help you scale.
The authentication process is pretty straightforward if you choose the basic one.
You just ask for the user credentials and there are many clients implementing the client side basic auth.
Fortunately, tastypie supports more than this. For example, the api authentication and you could read more here.
If you need anything else, please let me know.
Regards,
Michael.
Could anyone help or refer how it can be done..I searched over the net and what i felt is that its only for mobile and websites.
It's for websites. Many of the concepts of web analytics (number of pages viewed for example) don't even make any sense on a desktop app, because they're not organized like a web page.
If you want to use Google analytics data from an analytics account Google provides a data export API.
If you want to track your native application then as Catfish_Man (great name btw!) said, it is not really possible. That isn't totally true, as you could fake it, but the paradigm is so different that you would be better off creating you own solution.
You might want to see this library for GA on desktops
http://code.google.com/p/jgoogleanalytics
Google Analytics doesn't provide a native Mac app integration, but you can use the Measurement Protocol Overview to send raw data to your GA property from your account.
Just create a mobile app property and then start sending raw GA events using HTTP. There are couple Obj-C wrappers available like https://github.com/swisspol/GARawTracker or https://github.com/stephenlind/SimpleCocoaGoogleAnalytics.
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.