📜 ⬆️ ⬇️

Nuances of the Google Apps Marketplace

About a month has passed after it turned out to put your EmForge application on the Google Apps Marketplace , you can draw some conclusions, share experiences and tell about some nuances.




What is Google Apps and Google Apps Marketplace


I hope that most habrovchan already know what Google Apps is - if not, then this is the ability to use a set of Google services like Gmail, Calendar, Docs, etc. for your organization under your domain. Judging by a recent survey on Habré (although I did not find the links), many are already taking advantage of this opportunity.
In early March, Google opened the Google Apps Marketplace ( announcement on Habré ) - the ability to add third-party developers their applications available to Google Apps users, and administrators of domains using Google Apps to add these applications to themselves accordingly.
In addition to the announcement on the Habré about the marketplace, it seems there was nothing, so I want to share some of the experience from hosting our solution for hosting EmForge projects.
')

Nuance # 1 - Payment


From the point of view of the developer, two points should be taken into account:
1. When you first try to place your application, you will be charged $ 100. This is a one-time fee for getting into the Marketplace.
2. This part of the documentation does not immediately attract attention, and it is very important. If I understand the translation correctly:
* If you take money from Google Apps clients, you must “share” (you don’t need to share payments with non-GoogleApps). Sharing is 20%
* What could be shared - payment with Google Apps clients should be carried out through the CheckOut API. It is not yet ready, but how it will be ready - you, as a developer, have to complete the integration within 3 months. That is - if you have already connected some kind of API for withdrawing money - you will need to start a parallel GoogleApps client
In general, some very significant points about which the announcements did not write and did not immediately notice. In my case, EmForge still has all the services free and there is no billing, so CheckOut can be screwed - but if an existing application with an already created and tested billing is integrated with Google Apps, there may be problems

What it looks like for a programmer


Suppose you have some service and you want to expand the audience through Google Apps. The minimum necessary and sufficient requirement is a Single-Sign-On organization supporting login via OpenID. There are several technical nuances associated with openID for domains using Google Apps - but more about that. You can also integrate with many Google APIs - such as ContactAPI, CalendarAPI, and others, providing closer integration. There is a separate large section on Google Code .
After implementing it, you register on the Google Apps Marketplace, compose a page describing yourself as a vendor (for example, like us ), place your application (when you first post you will be asked $ 100).
This is followed by a period of Approve - Google employees will test how your application integrates Google Apps - Again, the minimum requirement is that SSO works
In my case — due to problems with SSO implementation — it took several iterations and 3 calendar weeks. I must say that the connection is not one-way, when a message arrives to you that your application did not pass the test, you can write questions, ask for details - and even get an answer. True, the question-answer iteration usually takes 2-3 days - so everything can be delayed (like me).
As a result, after the application gets approve - the page with your application is on the Google Apps Marketplace (again, for example, like with us ).

Application page monitoring


One thing that may not be clear - when editing the application page, you will have the option (optional) - enter Google Analytics ID - this allows you to monitor the number of visits to this page on the marketplace - this information may be useful.

What it looks like for the end user


The administrator of a domain chooses your application for installation — after several installation forms — for example, asking whether to give access to the requested APIs (by the way — you can add your form with your own specific settings) —the application is among other Google Apps applications.
End users get access to the application through the Universal Navigation Bar - this is the top menu in Gmail, which lists mail, calendar, documents, etc. - and so, among other things, your application will appear.
When clicking on your application, the user will be directed to a special URL to your service, the domain name will be added to the URL among the parameters. Your application should redirect to the OpenID provider, the provider will automatically resolve the login (in this case, the user doesn’t ask anything - the domain admin has already resolved everything) - and the redirect goes back to your service. You must receive and process openId information and automatically log in the user. Since the end user doesn’t ask anything in this case and the redirects go almost unnoticed - in fact, the user sees that after clicking on the link he is already logged into your service, you know who he is, where he is from and what his name is (email, username get from an openId provider). This is Single-Sign-On.
Well, what next to do with this user is your business :)

Nuance # 2 - OpenID specificity for Google Apps domains


In general, OpenID is a rather old topic, it was discussed many times in Habré, many services support login via openID. if yours too, it will be easier for you.
But - there are several nuances associated with the processing of openID for domains under Google Apps.
The fact is that despite the fact that the openId account in this case will look like mydomain.com/openId?id=xxxx - the provider is Google (the URL of the provider will look like www.google.com/accounts/o8/site-xrds ? hd = mydomain.com )
Important information about openID login consumer (in this case, your application) can be obtained from host-meta, but it should not be taken from the default path (http://mydomain.com/.host-meta, but also from Google: www .google.com / accounts / o8 / .well-known / host-meta? hd = mydomain.com )
Plus, the domain that is used for testing by google employees (marketplace-test.com) is hosted on Google Sites, the query marketplace-test.com/host-meta redirects to sites.google.com - and there you will get some HTML (instead of the 404 error expected in my case - to understand that the host-meta is not here and it should be searched for in Google) - which can also lead to incorrect processing.
If you use Java, I highly recommend using the step2 library, and especially to pay attention to their example of a consumer, where all the necessary tricks are present.
If you are using the Spring Framework, you can use my spring-security-step2 library.
For other languages, there must also be solutions - but here I am no longer up to date.

Integration with other services


In the description of the application, you can also specify which services google apps it will use. When installing the application, the admin domain will give you access, after which you can use these services without additional OAuth authorization - which seems to me more convenient.
Read more here.

Some tips for developers


Based on the above, I dare to give some advice to developers implementing Google Apps integration:
1. Be sure to add GoogleHostedHostMetaFetcher (see step2 consumer example);
2. For testing, use the browser in "private" mode.
3. When testing, try to simulate a situation where a request for host-meta from your domain (http://mydomain.com/host-meta) gives out something other than a 404 error (for example, some html)
4. Turn on the logs to the maximum (at least for a while while passing approve) - I got into a situation when "everything worked for me, but they did not". The only way to understand something is why in the case of the marketplace-test.com domain there are logs
5. If you are denied an approve - but you do not understand why, or have additional questions - do not hesitate to ask (just by replying to a letter that comes to you from Google with a description of the problem) - Google employees honestly work out your $ 100 paid for the "entrance" to marketplace, but remember, the question-answer iteration may take 2-3 days.

What is the result?


Applications on the Google Apps Marketplace is small (for now). So - immediately after entering the marketplace, my application was on the second (it’s last) page in the Project Management category
Page views on the marketplace about 20 a day, go to the site 1-2.
After the first positive feedback, the application moved to the first page - page views about 100 per day, about 5 transitions.
It is clear that the conversion in my case can be improved. It is clear that going up to the top of the first page you can get more views and more transitions. It is clear that in another category, in principle, there may be more potential users, but I think the order will not change.
That is, it seems to me, to write the application completely. Google Apps-oriented — it makes no sense yet, add Google Apps integration to an existing application — yes, you can, but don’t expect a huge flow of new users.

I hope that my experience will be useful. There will be questions - write "in PM".

Source: https://habr.com/ru/post/93422/


All Articles