How should I provide a hosted service on Google App Engine - google-app-engine

If i want to rent space on my service which I in turn host on Google App Service, is there some Terms of Service i need to know about?
Also, if I want to provide a service that should be customized for a company, say a Wiki that the company can tailor like their own with skins and even domains. Can that be done? Will I have to provide the binaries to be installed at my customer's Google App accounts? E.g. my wiki application would run at wiki.company.com

I don't believe there is anything in the TOS that prevents you from selling your software as a service on GAE.
The domain issue is a bit trickier at the moment, however, as there are relatively limited tools for attaching large numbers of domain names to a single app instance. Your best bet at the moment would likely be to purchase Google for domains accounts for each customer and host them on these separate accounts.
(cf Issue 113)

Related

Is it possible to register as a developer for Amazon SP-API without having a seller account?

I plan to develop an app for Amazon Selling Partner API (SP-API). The general idea of the app is that it will be the app, that different sellers can use to help them manage their stock on Amazon. I myself am not a seller on Amazon, and I don't work for a particular seller. The app, once ready, should be available to multiple sellers who are interested in using it.
Unfortunately, from what I found in SP-API documentation here and here it seems it's impossible to register as a developer, without being a seller yourself or having an existing seller that can register you as a developer. Is this correct? If yes, is there any way to overcome this issue? It seems a bit ridiculous that Amazon doesn't provide an easy way for third party developers to develop and test their apps on Amazon.
They would require a Seller Central account to be set up for public applications to allow you to register as a developer. The main account would be used to access the developer registration form and can be used to set up developer access. This would also allow support cases to be raised. Be aware that they will charge a monthly fee. Recent updates to documentation appears to suggest this will only affect Public application developers.

Google App Engine Payment Gateway Dynamic IP address requirement

I know this question has been asked in various ways but has anyone successfully integrated a payment gateway for GAE in JAVA in the UK?
I've looked at Stripe (US only), PayPal, Google Checkout and more recently SagePay.
I made some good progress with the SagePay for Java API but am thwarted by the whitelist requirement for a static IP address. Given all cloud computing services seem to operate on dynamic IP address assignment this seems a show-stopper for not only GAE but also other cloud services.
I've contacted SagePay and they can only work with a static IP unless using Form based integration but I want to keep users on my site and have as much control over the look and feel and user experience as possible.
Does anyone have any suggestions or has looked into this themselves?
In my experience offering only paypal or google checkout options results in loss of customers as people don't want to be bothered by creating accounts and often (in the example of paypal) miss the small print explaining sign-up is not required.
thanks for your help.
I use a reverse proxy (with a fixed ip) to access the payment provider. In my case: Ogone directlink. I did not find a public free service. So i created a small program which runs on a webserver with a fixed IP.

Google App Engine App interoperability

I have tried searching the info regarding applications on GAE within same domain talking to each other but so far I don't have any luck. There was a post here but I don't know if that answer is correct.
You could also run the two different "apps" as different versions of the same appid. Then they share the datastore. Also, urlfetch.fetch() calls to paths of the same app are treated specially, they are faster and don't require authentication (they count as if they are logged in as admin).
I believe you will be best served by exposing a REST API for both your applications, so that they can read/write information as needed.
For e.g. If one of your apps is an Invoicing App and the other app needs only read access to Invoices, you can expose an API in the Invoice App for:
searching invoices by some filter
providing the Invoice detail, given an Invoice ID
Exposing an API will keep the applications loosely coupled with each other and will allow you to enhance the API as more requirements emerge. In the future, you can even have other clients like a mobile app access the API.

Who owns domain purchased via GoogleApps?

My original plan was to use google appengine for an application. For this I purchased a domain via GoogleApps at Godaddy. Since Google Appengine fails to impress me, I would love to move my website to another server. But who is the owner of the domain now? GoogleApp "purchased" the domain for me - how can I regain control over the domain I paid for?
You paid $10 for the domain didn't you? That makes the domain yours. Google Apps is merely the portal through which you manage it. If you login to GoDaddy, through Google Apps, you can configure the domain to point to another webserver by changing your A record and MX records.
Of course, why would you want to do that? What makes App Engine so unimpressive in your eyes? Do you like having to spend 20 hours managing your Tomcat upgrades like this guy Nightmare: Upgrading Tomcat 5.5 to 6.0 or would you prefer to let Google handle those mundane details so you can concentrate on what you do best, building software!
Platform as a Service is, after all, the future. By the time you figure out how to get your app to production, Google App Engine will most likely no longer be in BETA and could be the new standard.
I encourage you to build your application with the future in mind, as in the world of web development, what's considered mainstream today will be obsolete tomorrow, and what's in beta/unstable today will take it's place. Technology moves incredibly fast; don't be left behind.

How are people using Google App-Engine apps with their own domains?

I've been fooling around with the Google App Engine for a few days and I have a little hobby application that I want to write and deploy.
However I'd like to set it up so that users are not directly accessing the app via appspot.com.
Is hosting it through Google Apps and then pointing it at my own domain the only way to go? I looked at that a little bit and it seemed like a pain to implement but maybe I'm just missing something.
My other thought was to write the app-engine piece as a more generic web-service.
Then I could have the user-facing piece be hosted anywhere, written in any language, and have it query the appspot.com url.
Anyone have any luck with the web-service approach?
The reason Google Apps is required is because you need somewhere to a) verify you own the domain (otherwise, you might point it at app engine, then I might hijack it by adding it to my account) and b) set up domain mappings (which subdomains point to which of your appengine apps).
Since this stuff already exists in Apps, it seems silly to duplicate it in AppEngine.
As has been pointed out, it doesn't cost anything, and you do not need to "move" anything to Google. You simple created a cname record with a random name to verify you own the domain, and a cname for the subdomain you wish to point at App Engine. This only takes a few minutes, and once it's done, it's done forever.
Note: If you host your site elsewhere and use webservices, you need to scale the site/frontend. If you host on app engine, you get this for free :-)
I wrote an article on my blog about redirecting *.appspot.com domains to your custom domain to keep your branding:
http://blog.dantup.com/2009/12/redirecting-requests-from-appid-appspot-com-to-a-custom-domain
To do this, I believe you need to be using Google Apps and have a custom domain setup for Google Apps. Then, you deploy your app into your Google Apps domain.
Here is google's official instructions on how to do that:
http://code.google.com/appengine/docs/domain.html
I have used this process for a couple of sites and it is easy and painless, provided you have control on the DNS records for your domain (you should).
OK, we're now at the end of 2017 and things are a lot different regarding App Engine and custom domains. It's easy now!
Go to the app engine dashboard for your app and choose Settings, then go to the Custom Domains tab. From there, choose Add custom domain.
The tricky part is that Google needs to verify that you control the domain, so they ask you to put a TXT record in the DNS for your domain. Once you do that and Google it, you become "verified" as the owner of the domain.
After that, Google will give you a bunch of A and AAAA (for IP6) records to put in your DNS. Once you've done that, you should be good to go.
It can be easily done using request.getRequestURI() method. If the URL doesn't include your domain, just redirect it to the desired URL using
resp.sendRedirect("<your domain>")
Otherwise load a error page using
request.getRequestDispatcher("<error-page>").forward(request, response);

Resources