I have an app using Google Contacts API https://developers.google.com/google-apps/contacts/v3/ through gdata to access user contacts. I'm using the gdata library to access it and OpenID+OAuth1 to login and request authorisation. Google recently made some changes and now states:
Warning: Due to enhanced security measures we've added to our
infrastructure, all developers using the Contacts API must register their
projects in the API Console <https://code.google.com/apis/console> and
ensure the Contacts API is activated in the API Console.
If your application has certain unusual authorization requirements, such aslogging
in at the same time as requesting data access (hybrid<http://code.google.com/apis/accounts/docs/OpenID.html#oauth>
) or domain-wide delegation of authority (2LO<http://code.google.com/apis/accounts/docs/OAuth.html#GoogleAppsOAuth>
), then you cannot currently use OAuth 2.0 tokens.
In such cases, you must instead use OAuth 1.0 tokens and an API key<http://code.google.com/apis/console-help/#WhatIsKey>
. You can find your application's API key in the GoogleAPI Console<https://code.google.com/apis/console#access>,
in the Simple API Access section of the API Access pane.
How do you set the API key along side the gdata request? (Assuming that the oAuth tokens are all taken care of)?
I've tried:
query = gdata.contacts.service.ContactsQuery(params={'key':'MY_API_KEY'})
query.max_results = 200
feed = googleintegration.contacts_service.GetContactsFeed(query.ToUri())
But I always get back a 401 Client error.