Google AppEngine: Is a default Client ID created when project is created? - google-app-engine

This documentation page states "a default client ID is automatically created and named for use by the project".
In my project under API Manager -> Credentials, I don't see any Client ID.
Is the documentation referred to older AppEngine's behavior?

Related

Permission denied on external access to Google Cloud Datastore

I want to access datastore (and storage) data of an AppEngine project via google-cloud-datastore and google-cloud-storage with an Python program on my own server.
This works with my AppEngine staging server, by creating a service account and giving it owner access (to the project).
Doing the same thing with the production AppEngine instance fails with
google.api_core.exceptions.PermissionDenied: 403 Missing or insufficient permissions.
Part of the problem might be, that I might be using the wrong project to create the service account with. There are more than one project with the same name in my cloud console. How do I identify the correct one?
How do I get more details about the problem?
First, note that the Datastore and the Cloud Storage are 2 different products with 2 different accessing methods.
The Datastore is closely tied to the GAE project - each project has its own datastore. The external access procedure in general is captured in How do I use Google datastore for my web app which is NOT hosted in google app engine?.
When switching the project (staging to production in your case) there are 2 things to keep in mind:
as you observed, you need to change the project you're accessing.
you also need to change the credentials you load and use for access to match the project you select, as each project has it own service account key configured in the above-mentioned procedure
For the google-cloud-datastore library both of these are simultaneously configured via the datastore.Client() call parameters (emphasis mine):
class google.cloud.datastore.client.Client(project=None,
namespace=None, credentials=None, _http=None, _use_grpc=None)
project (str) – (Optional) The project to pass to proxied API methods.
credentials (Credentials) – (Optional) The OAuth2 Credentials to use for this client. If not passed (and if no _http object is passed),
falls back to the default inferred from the environment.
The Cloud Storage is completely independent from GAE, the GAE project/credentials you use (if any) have no bearing on bucket/object access restrictions whatsoever. There's nothing you need to do from the google-cloud-storage library perspective when switching from one GAE project to another
To eliminate the confusion created by multiple projects having the same name just go to the IAM & admin Settings page, select the respective projects from the drop-down list on the top blue bar and rename them using meaningful names (click in the Project name box to edit the name, then click SAVE). Then re-check if you're using the right keys for the desired project.

Replacing the existing Project on Google Cloud Platform

I have deployed a Java Web application on Google Cloud platform and have purchased a domain and SSL Certificate from GoDaddy.com.
Its a simple application with a login page and a registration, where a specific(only one user) will have login credentials and post login will submit a form which will be saved in google DATASTORE in Google Cloud Platform(GCP).
I have two queries here :
1)
My application works perfectly,on my machine and even few machines around my home (as i have verified in few cyber centres around) but not at a client place located in different city(150 miles away). I'm not sure,as the client is not running any firewall or any browser plugin, as i have not visited the client place yet.
The call is as below.
Domain purchased from godaddy.com is : "ABC.in"
App engine project linked to this domain is : "web-abc"
If we hit "ABC.in" in browser it will in-turn call "web-abc.appspot.com".
in the background.Now though the login page loads,the client complains that the next subsequent pages does not load and page becomes blank.But for me in my system it works perfectly,as i can see the updated DATASTORE in GCP.
2)
Once i configure my DNS at GoDaddy.com, i'm unable to make any changes to the project hosted on GCP app engine.So i decided to create a new project and host it on the GCP. But GCP app engine page does not show any option to replace a project as it showed me during my first project setup.
I need to replace project "web-abc" linked to "ABC.in" with "web-pqr".
Please Please help...!
Thanks
To answer your second query you can just rest your CNAME record in the GODADDY DNS configuration and add the web-pqr reqq. That should work. Rest of the question< i really don't get it. Please share some error message or the screenshot when you try make change to your exiting project.

How to create a Salesforce app like Mailchimp

I am looking to create a Salesforce app like mailChimp (https://appexchange.salesforce.com/listingDetail?listingId=a0N3000000B3byfEAB) have. I want to create an interface under the salesforce to allow the user to do some field mapping, Just like Mailchimp app allow to map the Mainchimp field and Salesforce Contact fields. I have gone thought the Salesforce documentation but found it very vast not getting where to start and did not found which kind of scripting it require to create the app.
I have a developer and a partner account. If any one can put some light on it and give me some short answer for the below question will be really helpful.
Where to start for creating an slesforce app.
The app we create from the Salesform CRM account and app listing on AppExchange is different?
Is this apps are hosted on salesforce itself or hosted in our own server?
Which scripting language is required to code the Salesforce app?
Can we call the external API's inside the Salesforce app?
After asking question, I also work on this to get the answers for my question. I am sharing my RND below, So it may help someone and can save their time.
Here is the complete document link for the app creation and publishing on app Exchange, you can go thought it and find all the answers step by step.
So below are the very short answers of the question I asked.
Where to start for creating an slesforce app.
Step 1: Sign Up for the Partner Program
Step 2: Create a Development and Test Environment
Step 3: Get a Business Org
After doing the above 3 steps you can get a environment hub into Business Org, By which we can create different organization to create the app in one org (that is dev org) and install and test into the other org( that is test org).
The app we create from the Salesform CRM account and app listing on AppExchange is different?
Yes, From Your CRM account you can create the app, package the app in beta version. Once you done the testing with beta app by installing it into your Test Org you can deploy it for app exchange, After security review you app will be available into app exchange publicly. You can do it from your salesforce CRM account itself (See the above doc for more details)
Is this apps are hosted on salesforce itself or hosted in our own server?
There are two types of app:
1.VisualForce Pages app: This app is besically a collection of VisualForce Pages and reside or hosted into the saleforce itself.
2.Connected App: Connected app also includes the VisualForce pages as need but it also provide the client id and client secret key by which we can authenticate the user and call the Salesforce REST API from the outside of the CRM. So we can say this is something we can host the API access code into our own server.
Which scripting language is required to code the Salesforce app?
For Coding into the VisualForce pages we required Salesforce Apex Scripting and HTML.
Can we call the external API's inside the Salesforce app?
Yes, Using the Apex HTTP class we can call the external API's into the salesForce.
Hope this will help someone.

Issue authorizing access with google analytics super proxy

I'm setting up google analytics super proxy to create some public queries on my google analytics data. I have followed the instructions given in the below link to setup a analytics super proxy in app engine:
https://developers.google.com/analytics/solutions/google-analytics-super-proxy
I have followed the steps specified, enabling access for analytics api and creating a client ID for the super proxy web application deployed in app engine. I updated the required properties in the app.yaml and config.py files in the super proxy and deployed it to app engine.
I'm able to open the admin page of the deployed super proxy, but when I try to authorize access, I get the an error saying 'invalid_client' (although the client id seems to match with the one I created in developer console):
I'm unable to figure out what has gone wrong, or if I've missed something? Can you please help?
Regards,
Anand
Go to the Dev Console -> Your Project -> APIs & auth -> Consent screen. Make sure all the non optional fields are filed in (specifically in your case PRODUCT NAME).

How to obtain a private key for a legacy Google App Engine project?

I have a Google App Engine app which was created in early January 2013. I now want to use the Google Calendar API to post calendar entries from my GAE app and - after reading about the various options - I decided that Service Accounts with OAuth 2.0 authentication would be the best option. This approach requires the use of a private key to sign a JSON data structure with various credentials.
Now the Google documentation states:
During the creation of a service account, you will be prompted
to download a private key.
I checked my GAE dashboard and can see that there's a service account associated with it but I cannot remember ever being prompted to download a private key. I checked the Google Cloud Dashboard but could not find any links to obtaining such a key either.
Is it possible to obtain the required key at this moment and if so, how?
I have accepted Zig's answer and although it is slightly brief it helped me find a solution for this. For people who run into the same issue, here's some more detailed information
I initially could not find anything in the Cloud Console but then - after another hour of wading through Google's documentation and Cloud Console - found the relevant pages in the Api Console which is a different beast.
In the API Console click API access from the side bar. Then click the "Create another Client ID..." button and choose "Service Account". This will popup a window which allows you to download the private key.
Create a new service account in the console.

Resources