Google Contextual Gadget with delegation - google-oauth

I'm willing to developp a contextual gadget inside a Google Apps GMail.
I have made somes tests on the gadget but I have still some questions about the identities involved.
I need some informations about the current email (done with the extractors) and some informations regarding the current user logged BUT I also need informations about the user reading the email and the current mailbox accessed.
ie. If UserB has a delegation on UserA, when UserB opens a mail in UserA mailbox I need to know both identities (UserA and UserB).
How could I get that informations ?
Thanks.

That sounds like it can't be done with a contextual gadget as this information is not provided with the standard extractors available to you.
I would guess the best way to approach this would be to use a Chrome Extension. With a Chrome extension you can access the Gmail DOM and perform some fairly complex actions. You might be able to determine from the Gmail DOM that a user is viewing a delegated mailbox... But then again it might not be possible.

Related

Is it possible to send website invitee to google plus users

Is it possible to send website invitee to google plus users.
I have a website with option to login using google account. I want to send an message to all friends of logged in google users on logged in users request.
I think interactive posts would be a good solution for this.
This allows users to choose themselves who and if they want to invite.
You can define an invite text that will be prefilled in the share box (even though users can adjust that text).
If you want you can also use the people.list method to fetch some of the more relevant friends and prefill the share box with them.
See https://developers.google.com/+/features/interactive-posts and https://developers.google.com/+/web/share/interactive for details.

How do I detect Google account deletion?

I've just started working with Google OAUTH2 in order to add a "Sign in with Google" button to my web site.
According to the "Google+ Platform Developer Policies" section B.2.a.III, if a user deletes their Google account, I must delete all personal information I obtained from the Google API relating to them.
Does this apply to my web application as well? And if so, how do I detect that a user's Google account no longer exists? Surely, a successful login will only occur if the Google account exists; so how can I tell if a previously existing account is no longer there?
Maybe someone has a better approach, but a simple and practical solution would be have a link buried somewhere on your site that allows a user to request account deletion via email (assuming you still possess a valid email for him - if he deletes is Gmail and that's all you have then you have no way to contact him other than manually via phone or something).
The doc you link to says Give users a reasonably convenient way to delete any of their personal information you’ve obtained from the API.
So assuming you still have a valid email address, this would work:
Your FAQ says "What if I want to delete my account?". Links to account deletion page.
Account deletion page: What's your email? _____ (Continue)
Email is sent to user with (securely randomized) confirmation link.
Confirmation link is clicked by user which deletes all of his data from your site.
Success of that process is dependent only on your system and the email arriving.
(If you are concerned about complying to EU data protection law, you might want to implement this feature anyway - since one legally has the right to demand the deletion of one's own personal data.)

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).

Google plus share using php

Is it possible to share some user activities (some url) to his google+ account directly with PHP (Not like a share button and having an popups or redirections)?
Please suggest me a best practice for doing the same.
Currently, it is only possible with the official Google+ Share Link, but this will render a pop-up.
https://developers.google.com/+/plugins/share/#sharelink
Google+ does not allow for direct writing to a user's stream without a user's direct interaction. You can write to a user's Google+ history after they've approved your application to do so and then the user can choose whether or not to share the moments to their circles or publicly.
The Google+ history is still in developer preview.

For Twitter , how to create test user accounts?

Facebook allows you to create test user accounts that can only be used for testing purpose.
Does Twitter provide similar functionality ? I don't want to get my application blacklisted for creating fake user accounts; do I have to use my real user account for testing my application ? What strategies are your using for testing application with Twitter ?
As far as I know, there is nothing in Twitter's rules against creating account (unlike Facebook, where with the exception of test accounts, you're not allowed to create multiple accounts for testing purposes). So, you can just register the account like you normally would.
You might want to take a look at this post for some other tips for test accounts (hiding your tweets, deleting the account when you're done testing, etc.).
I'm currently creating a Twitter application and here are some of the strategies I'm using.
I create my accounts in combination with Gmail addresses. If I create a gmail account as user bob#gmail.com , I secure the Twitter name #bob on Twitter. That way it's kind of hard to forget where to email a lost password. I don't go crazy, as I don't need 100's of test accounts but I do have up to three.
I log on to my test accounts using Chrome because it will automatically recall your password as soon as you type in your Twitter name on the home page. That way it is easy to switch between them, but note that I find it hard sometimes to know which account is actually active because I'm constantly looking at other profiles. This gets confusing if I don't constantly look at the logged in user icon indicator.
Never, ever re-tweet anything unless you absolutely have to for a test case or use hash-tags unless for a test case. Unbelievably even on a completely un-publicized account, I had a few surprise Twitter users in my DB a few seconds after I re-tweeted a link.
on Localhost, close all your other browser windows while your testing. Especially if your calling the API through AJAX. You never know which sites you have open whom also call the Twitter API through AJAX, and this can seriously screw with your tests and rate limits. Especially when your developing live.
I would not recommend protecting your tweets. It's too limiting for most use cases.
For my site, I need to place a link in the tweets. Twitter will not
allow live links to http://localhost so you have to plan around
this and have a live test server sooner then you may anticipate.
Twitter has one of the easiest registration processes I have seen. You can quite easily create several test accounts; this is the only method I have used.
Here is a blog post about it.