There are a couple of things you need to be aware of if you are planning to develop applications running on App Engine that use the GData API's to talk to Google Enterprise Apps;
1. The GData API's appear to have a dependency on Goolge Collections;
http://code.google.com/p/google-collections/
If you are using certain API's and you get an error saying that a common Maps class cannot be instantiated, it is because you are missing this dependency.
2. The User Service cannot currently be used for Hosted GApps accounts. You have to use AuthSub. To get this to work you need to;
Add the following into you appengine xml file;
sessions-enabled true
system-properties property name="com.google.gdata.DisableCookieHandler" value="true"
3. If you want to use the Contacts API, then you need to set your session token on the ContactsService using setAuthSubToken(token, PRIVATE_KEY); if you are not using signed auth then set the PRIVATE_KEY to null. If you try to pass the token in the constructor or via the SetAuthSubToken(token) method you currently get an error saying that the Auth Header is missing.
4. When you upload your app to App Engine, you need to reset your browser (clear cookies, cache etc.) and you also need to wait a few minutes or more depending on the size of your app as there is a lag between upload completing and the new app version being deployed. If you test to quickly you appear to get your old code executing.
5. You cannot write files, spawn threads or open network connections on App Engine.
Saturday, May 16, 2009
Tuesday, May 12, 2009
More App Engine Frustration
OK, so I can't get GData and Auth to play nicely on Java App Engine.
I am not convinced that Auth works. I have an example from Google which was built for App Engine and the Consumer version - I try it but it doesn't work. I have tried it against Premier and that doesn't work either. The Token just does not seem to work for the GData services.
Looking on the online group, I can't find anyone else who has tried to get GData & Auth working on App Engine ...
I don't know if anyone has tried this with Python and had more success - that won't help me mind, I need Java to work.
Authenticating seems to be OK, to Authorising against API calls is broke!
I have had enough for tonight ... will take another stab at it tomorrow ... maybe ... or maybe I will use EC2 ... or take up sheep farming?
UPDATE:
Got this working now ... will post on this when I get back to the UK
Google App Engine, Enterprise Accounts & GData API
In the Admin Console of my Google Apps Premier Edition, I can add App Engine apps for my Enterprise users to access, as an integrated part of my GAPPS environment, Great :-)
App Engine now has a Java API, Great :-)
The Java API exposes a User Service so that I can authenticate users using their Google account, Great :-)
No, wait ... The User Service only appears to support the Consumer version of Google Apps, so my Enterprise users cannot be authenticated using this, NOT Great :-(
Maybe I can use the GData API's? Kinda, some of the common classes they have dependencies are repackaged on App Engine with different package names so there is a bit of trial-and-error, NOT Great :-(
Solution, I write my own libraries to for authentication and maybe some GData interactions with the Enterprise Apps API's, NOT Great :-(
If Google is really serious about playing in the Enterprise space, they are going to have to raise their game. Microsoft are fixing issues with BPOS and I am pretty sure that their Azure platform will be enterprise ready at some point in the not to distant future. Plus IBM are getting serious about the Enterprise Cloud. Google have a window of opportunity right now to grab a big chunk of the Enterprise market, if they don't raise their game they could find their Enterprise division being no more than a bit-player in this space. They need to shake off the Consumer mentality and make some serious investment in their Enterprise division.
The Enterprise Division is the fastest growing part of their business right now; I know they are making investment in that area of the business, but it is not enough and I am not convinced that they are focussing on the right things. They have some real challenges with their platform and they are still trying to find their way with a workable partner strategy. I really hope that Google get it together - they could be massively successful in the Enterprise space - right now they just aren't there - if they frustrate their partners and Enterprise clients too much, they won't stick around.
UPDATE:
I can use some of the GData Classes to effectively implement my own EnterpriseUserService to manage Auth. I can then use the GData Client Library for Java (at least the classes that don't depend on the repackaged common classes).
Of course, once Google support the GData Client Libraries on App Engine fully, I'm going to have more refactoring to do; kinda like with Android!
Friday, May 8, 2009
CupCake on G1
Just had CupCake pushed onto my G1 :-)
It has a nicer look & feel, the on-screen keyboard and much improved GPS.
I now need to figure out the impact on the Android client I am developing - see what issues with the API's have been fixed, what new ones have been introduced and what I need to migrate.
Subscribe to:
Posts (Atom)
