Hi David, Unfortunately, the Python client library doesn't support this abbreviated OAuth protocol yet. If you are looking to add this feature yourself, look at:
http://code.google.com/p/gdata-python-client/source/browse/trunk/src/atom/http_interface.py http://code.google.com/p/gdata-python-client/source/browse/trunk/src/atom/http.py -alex On Nov 16, 5:57 pm, David Ruwoldt <[EMAIL PROTECTED]> wrote: > Dear Alex, > > Thankyou for that it works. Are you also able to help me with how I > attach this to my script that subscribes a user to a calendar. > Currently it uses programtic login to do this. From looking at the > doco it looks like I could use SetAuthSubToken(self, token, > scopes=None), but when I went to the Auth website it indicated that > OAuth and AuthSub were different, so it looks like OAuth may not be > supported for the GData service as yet which is where the Auth calls > seem to come from. > > Being able to use OAuth with the consumer secret means that I will be > able to subscribe custom calendars to users without their credentials > which will be very useful. > > Yours sincerely > > David Ruwoldt > > #!/usr/bin/python > # > # Copyright (C) 2007 Google Inc. > # > # Licensed under the Apache License, Version 2.0 (the "License"); > # you may not use this file except in compliance with the License. > # You may obtain a copy of the License at > # > # http://www.apache.org/licenses/LICENSE-2.0 > # > # Unless required by applicable law or agreed to in writing, software > # distributed under the License is distributed on an "AS IS" BASIS, > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > # See the License for the specific language governing permissions and > # limitations under the License. > > __author__ = '[EMAIL PROTECTED] (Ryan Boyd)' > # modified: [EMAIL PROTECTED] 20080904 > > try: > from xml.etree import ElementTree > except ImportError: > from elementtree import ElementTree > import gdata.calendar.service > import gdata.service > import atom.service > import gdata.calendar > import atom > import getopt > import sys > import string > import time > > class CalendarUpdater: > > def __init__(self, email, password): > """Creates a CalendarService and provides ClientLogin auth details > to it. > The email and password are required arguments for ClientLogin. > The > CalendarService automatically sets the service to be 'cl', as is > appropriate for calendar. The 'source' defined below is an > arbitrary > string, but should be used to reference your name or the name of > your > organization, the app name and version, with '-' between each of > the three > values. The account_type is specified to authenticate either > Google Accounts or Google Apps accounts. See gdata.service or > http://code.google.com/apis/accounts/AuthForInstalledApps.htmlfor > more > info on ClientLogin. NOTE: ClientLogin should only be used for > installed > applications and not for multi-user web applications.""" > > self.cal_client = gdata.calendar.service.CalendarService() > self.cal_client.email = email > self.cal_client.password = password > self.cal_client.source = 'Google- > Calendar_Python_UofA_Calendar_Updater-1.0' > self.cal_client.ProgrammaticLogin() > > def _InsertSubscription(self, id): > """Subscribes to the calendar with the specified ID.""" > print 'Subscribing to the calendar with ID: %s' % id > calendar = gdata.calendar.CalendarListEntry() > calendar.id = atom.Id(text=id) > returned_calendar = self.cal_client.InsertCalendarSubscription > (calendar) > return returned_calendar > > def Run(self, groupCalendarName, delete='false'): > """Runs each of the example methods defined above. Note how the > result > of the _InsertSingleEvent call is used for updating the title and > the > result of updating the title is used for inserting the reminder > and > again with the insertion of the extended property. This is due to > the > Calendar's use of GData's optimistic concurrency versioning > control system: > http://code.google.com/apis/gdata/reference.html#Optimistic-concurrency > """ > > # Insert Subscription > inserted_subscription = self._InsertSubscription > (groupCalendarName) > > def main(): > """Runs the CalendarExample application with the provided username > and > and password values. Authenticationcredentials are required. > NOTE: It is recommended that you run this sample using a test > account.""" > > # parse command line options > try: > opts, args = getopt.getopt(sys.argv[1:], "", ["user=", "pw=", > "delete=", "calendar="]) > except getopt.error, msg: > print ('subscribeCalendar.py --user [username] --pw [password] ' + > '--calendar [groupcalendarname] --delete [true|false] ') > sys.exit(2) > > user = '' > pw = '' > delete = 'false' > groupCalendarName = '' > > # Process options > for o, a in opts: > if o == "--user": > user = a > elif o == "--pw": > pw = a > elif o == "--delete": > delete = a > elif o == "--calendar": > groupCalendarName = a > > if user == '' or pw == '': > print ('subscribeCalendar.py --user [username] --pw [password] ' + > '--calendar [groupcalendarname] --delete [true|false] ') > sys.exit(2) > > sample = CalendarUpdater(user, pw) > sample.Run(groupCalendarName, delete) > > if __name__ == '__main__': > main() > > On Nov 12, 3:56 pm, "Alex (Google)" <[EMAIL PROTECTED]> wrote: > > > Hi David, > > > We're in the process of documenting that new feature better. Below is > > a snippet which uses thePythonOAuth library from: > > >http://code.google.com/p/oauth > > > import httplib > > import oauth.oauth as oauth > > > CONSUMER_KEY='domain.com' > > CONSUMER_SECRET='XXXXXYYYYYZZZZZ' > > USER='[EMAIL PROTECTED]' > > CONTACTS_URL='http://www.google.com/m8/feeds/contacts/default/full' > > > consumer = oauth.OAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET) > > request = oauth.OAuthRequest.from_consumer_and_token > > (consumer,http_url=CONTACTS_URL, parameters={'xoauth_requestor_id': > > USER}) > > request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(), consumer, > > None) > > > connection = httplib.HTTPConnection('www.google.com') > > connection.request('GET', '%s?%s' % (CONTACTS_URL, request.to_postdata > > ())) > > print connection.getresponse().read() > > > -alex > > > On Nov 10, 5:48 pm, David Ruwoldt <[EMAIL PROTECTED]> wrote: > > > > Dear Anirudh, > > > > Do you have anypythoncode that shows how to use OAuth with the > > > consumer secret? > > > > Yours sincerely > > > > David Ruwoldt > > > > On Nov 10, 8:49 pm, dlw0193 <[EMAIL PROTECTED]> wrote: > > > > > Thanks so much. That worked like a charm. Looks like I'm ready to try > > > > learning a new language! > > > > > Thanks again, > > > > > Darrell > > > > > On Nov 10, 4:57 am, "Anirudh (Google)" <[EMAIL PROTECTED]> wrote: > > > > > > Hi, > > > > > > The methods required forAuthenticationare provided in the library. > > > > > Here is the code that you would need to write to authenticate yourself > > > > > and say update the signature: > > > > > > import gdata.apps.emailsettings.service > > > > > > service = gdata.apps.emailsettings.service.EmailSettingsService > > > > > (email="[EMAIL PROTECTED]", password="pass", domain="domain.com") > > > > > service.ProgrammaticLogin() > > > > > service.UpdateSignature( username="user", signature="howdy") > > > > > > We do have a Java/Swing based GUI client available for Email Settings > > > > > API. It is bundled with Java GData > > > > > library:http://code.google.com/p/gdata-java-client/downloads/list > > > > > > We also acknowledge the need for better language specific guides for > > > > > various APIs provided and will take your query as valuable feedback > > > > > regarding the same. > > > > > > -Anirudh > > > > > > On Nov 9, 8:28 am, dlw0193 <[EMAIL PROTECTED]> wrote: > > > > > > > Hi all, > > > > > > > I am trying to get started using the gmail settings API. I have > > > > > > downloadedPython2.6 and the GData library. > > > > > > > I have almost no programming experience. I'm able to run some of the > > > > > > samples included in the GData library and access my personal GDocs. > > > > > > However, I can't seem to find the correct code to get an > > > > > >authenticationtoken to use in accessing gmail settings for my Apps > > > > > > account. > > > > > > > Can anyone point me in the right direction or provide thePython code > > > > > > I need to use? > > > > > > > On a related note, are there any slick GUIs available that simplify > > > > > > using the APIs? > > > > > > > Thanks in advance. > > > > > > > D --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Apps APIs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-apps-apis?hl=en -~----------~----~----~----~------~----~------~--~---
