Unlimited personal use of Google Calendar API without refreshing token - api

I have my personal Python script that automatically creates events in one of my personal Google Calendars through the Google Calendar API. I can then share this calendar with other people by giving them the ICALL link.
My issue now is that the credentials token expires every 7 days. Is there a way to have unlimited use of a token if it's for personal use (meaning: I will be the only one using the Calendar API and only my personal Google account is given access to the API)? I don't think I can transition my Google Cloud project from "testing" to "production" if it's just for personal use and not really a company making the "app".
Or is there an alternative method to create an ICAL link of a calendar that can be modified through my Python script?

Related

Do you need an Google account to use Google BigQuery?

Background: Is it possible to have user without an google account to use google bigquery web UI to query your data?
I know you can set quota based on google group and add people that does not have a google account in there. I am thinking since this is possible, there might be a way to let user use BigQuery without an google account.
Trying to use the quota function with Google BigQuery web UI. I am not sure if they are able to access Google BigQuery web UI without an Google Account even.
Unfortunately no. Our web UI requires sign in with a Google account.

Log in with a specific username with Google API

I am developing a web app for a group, and I want to be able to let anyone in the group create an event and add it to the group's calendar through the app. I was able to get the basic functionality working using Google Calendar API v3 for Javascript -- you could fill out a form with the event's start/end times, title, information, etc, and it could insert that event into the calendar.
But the problem is with authentication. If a user is logged in to a Google account that is not given permission to create events on the calendar, they are unable to add the event (Javascript writes "Forbidden" to the console). If I log out of all Google accounts and then sign in with the account that owns the calendar, the event is created with no problems (that makes sense).
Adding every single person in the group to the edit-permissions on the calendar seems like too much of a "brute force" method.
Is there a way to always authenticate the Google account that owns the calendar? Or, better yet, is there a way just to force authentication in general, even if someone is already logged in to Google / authorized to the app? Some people in the group know the calendar login/password, so if I could always bring up a Google login screen, they could just enter the calendar account information and then add the event from there. Again, I'm using Javascript (not much documentation on this...).
Thanks!
Have a look at Service Accounts. That way the calendar is owned by the application, and so the application will always have permission to update it.
If you want to avoid authentication problem from other opened session in user browser, you have to authenticate on the calendar, using server side library.
check this link:
https://developers.google.com/google-apps/calendar/auth
it bounces you from one article to other, but at the end you should get all information.

Google Tasks API authorization

I can see many related questions on SO, but none that answers exactly what I'm confused with.
I'm using Google Calendar API in a .NET desktop application that allows user to provide his/her username/password, logs in on his behalf and adds some events to the calendar. Now I want to do exactly the same thing for Tasks feature. I'm trying to use Google Tasks API for this, but have been told that I need to do some OAuth kind of authentication, and even before that, I need to go to my gmail account and set permissions and get my project "key" to enable it.
Now does every user of my application need to do these steps in their Gmail account? Or do I need to do this in MY gmail account once and then my application code will be able to use the generated project "key" to enable my users to add tasks to THEIR gmail tasks list?
Figured it out. For anyone having a hard time understanding this, here it is:
The "key" generation step needs to be done only once per application, not for each user who's going to use your application. To generate a key, login to your Google Account and go to Google APIs Console page. Click API Access button and that's where you can generate keys for different kinds of applications like browser apps, desktop apps, Android apps etc. After registration, you'll need to take Client ID, Client secret and API key from this page and put them into the code. Sample code (.NET) for task creation and several other Google features is available here.
Once your user runs your application, he'll be taken to his Google account in his default browser where he'll be asked if he wants to allow this application to write to his calendar/tasks list. This page will display your logo and description text too that you can provide at registration time. Once allowed, this step won't be required again in the next one hour (this may be adjustable, i don't know yet).

API to create filter for free google app and gmail users

Is there a way to create a filter in gmail programatically for gmail users as well as for free google app accounts?
It seems that the e-mail settings API is only applicable for Google Apps for Business or Education accounts (http://support.google.com/a/bin/answer.py?hl=en&answer=60228).
Aayush.
I would like to know whether anybody knows the answer, because a good gmail filtering app is sorely needed for android users!
I looked everywhere and finally found this:
https://market.android.com/details?id=com.digitalchemy.springclean.gmail&rdid=com.digitalchemy.springclean.gmail&rdot=1#?enroll=yAb5pZ2MYWwmoft_rED3OYt6t0U%3D&purchaseButton=Dw2xBTSDPLCsKHcCnowBY0VcYUU%3D&addInstrument=NyJt6qfLAWzk-RVX01VtYp73FRg%3D
I don't like that it costs 3 dollars and uses 7megs of space. The source is closed, and I'm trying to guess how it does what it does.
This is the most recent link I've found as I try to make my own filtering app and service:
http://googlecode.blogspot.com/2010/03/oauth-access-to-imapsmtp-in-gmail.html
So, it appears that the API is (as you stated) for Business / Education accounts only, and Google doesn't support Sieve in their IMAP account - http://support.google.com/mail/bin/answer.py?hl=en&answer=78761
As I see it - your only option would be to create a custom IMAP client that creates & stores rules on your own server, and then manipulates the email locations "manually" - a rather taxing process if you ask me but doable :)
EDIT:
Here is a little tutorial using Zend_Mail for moving gmail emails via imap
http://www.devcha.com/2010/06/how-to-removemove-messages-using-zend.html

Google Calendar with Rails3

I want to automtically add calendar entries to Google Calendar from within my Rails App. I am not able to find a gem which allows transparent integration to Gcal.
Problem with gdata - http://code.google.com/apis/gdata/articles/gdata_on_rails.html#AccessingFeeds is that its not maintained and it requires the user to go to authentication URL. I am reluctant to store user passwords to everytime authenticate them before posting to their calendar. I already have google based openid using omniauth.
I am looking for a solution which can : 1. Allow updates to user's google calendar. 2. Wont need the user to authenticate everytime they want to update their calendar.