Google Content API - Not a valid origin for the client - google-api

I'm struggling with Google's Content API.
I created a key on the authentication tab of the Merchant Center, as described here : https://developers.google.com/shopping-content/guides/quickstart/setting-up-a-client-library
This downloads a JSON file (content-api-key.json) but doesn't seem to add anything to the dashboard.
Next, I went to one of the API docs pages and copy pasted the JavaScript code it autogenerates. I replaced YOUR_API_KEY with private_key from the JSON file (should I use private_key_id instead?), and YOUR_CLIENT_ID with client_id.
When opening the file in the browser, I'm greeted with this lovely error message :
"Not a valid origin for the client: XXXX has not been whitelisted for client ID YYYY. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID."
When I go to the developer console like they suggested, I don't see any projects related to the merchant center account I'm working on (which I have admin rights to).
So I created a new project in the developer console, but I have no idea how to link that project to the right merchant center project, or to the key that I downloaded.
So the question is, how do I whitelist a URL for the generated key (content-api-key.json)?

Related

How to Create OAuth Client ID?

I am trying to run this github project.
For this I need to create credentials and OAuth Client Id.
When I click to create. After selecting web applications and typing the name I see authorised javascript and authorised redirect uri.
So what should I enter there because I tried with keeping both fields empty. But I got error saying no redirect url found for client id
Please help me.
I am using Developer Console for first time can't find any help on internet. This site is my last hope.
I did as said in [comment].2
Here is what I got in Linux shell and the error i received on redirected url opened webpage.
Linux Shell Message
/YouTube-Subscription-Importer/env/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access subscribe.py-oauth2.json: No such file or directory
warnings.warn(_MISSING_FILE_MESSAGE.format(filename))
Your browser has been opened to visit:
https://accounts.google.com/o/oauth2/auth?client_id=1069660256195-n8adm0dmi70v29i55hcfblftle09hb5n.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube&access_type=offline&response_type=code
If your browser is on a different machine then exit and re-run this
application with the command-line parameter
--noauth_local_webserver
Snipe of what redirect url webpage said
**MOST IMPORTANT
I am running this in windows bash.
Now tell me what to do next.
I just simply need a tutorial/how-to use guide for Google developer console credentials and OAuth Screen.
**
You need the redirect URL, you will be redirected from Google OAuth Consent Screen to https://REDIRECT_URL?code=AuthorizationCode, you can just set it to http://localhost.
After creation, you can your find Client ID on the Credentials page.

How to download credentials.json in Gmail API Enable Java

I am trying to enable Gmail API following steps in Java Quickstart. When I click on "Enable the Gmail API" button in the Google developer console, no option like "Download Client Configuration" is displayed.
So, I am unable to get credentials.json File.
Gmail API credentials are restricted to enhance apps security. To enable the credentials click on API Console after clicking on Enable the Gmail API. You will travel to a filled form on the Credentials menu on Google APIs. You can change there the name and/or restrictions to better suit your project. Finally, you can click on Generate key to finish the process.
If you have followed the steps so far, you would have created the Gmail API credentials. To achieve your request you will need to click on Download JSON button on the right side of your newly created credentials. Do not hesitate to ask for more information if I haven't explained the process with enough detail.
Just enabling the Gmail api isnt going to create client credential for you. Unfortunately the developer console changes more often then the quick starts get updated so it can be difficult to understand.
Go to the https://console.developers.google.com
Find the credentials tab on the left and click the Create credentials button
You are probably going to be looking for an oauth client id, as service accounts only work with gmail if you are connecting to a gsuite account.

Can't add domain for push notifications in google developers console

I've created a new application in google developers console, my app is using the Google Calendar API and I want to be able to get push notifications on changes in the calendar. I've added and verified my domain in Web Master Tools, when I try to add the domain in the push notifications section in the console I get an error:
Error
You do not have access to the following domain: ***
I tried to do that with another application (with different google account), and I encounter the same problem, It seems like google are having a problem because it's not the first time I'm doing it and it should be pretty simple, any suggestions?
In order to add a domain to the "Push notifications" you must verify your domain in webmaster tools with a "https://" prefix, otherwise it won't work because push notifications in Google works only with "https://", that's why you need to verify it in webmaster tools with "https://" so Google can verify you have an SSL.
This will be helpful incase if you are using subdomains.
https://support.google.com/webmasters/answer/35163?hl=en&ref_topic=4564314&vid=1-635796479292102918-3720802661
When you verify that you own a domain (such as example.com using DNS verification, you've proven that you have control of the domain, all its subdomains, and all sites in those subdomains.
Similarly, if you have verified http://www.example.com (using any verification method), and then add http://www.example.com/test, you will be automatically verified as an owner of http://www.example.com/test. You'll remain a verified owner of the subdirectory even if you later delete http://www.example.com from your Search Console account.

This IP, site or mobile application is not authorized to use this API key

I am using https://maps.googleapis.com/maps/api/geocode/json? link with server key and user IP to find the latitude and longitude of any address, when I'm trying I find the error as
I have a server access key from google and I have put my server's IP address in the their white list.
The URL that I am trying to access via PHP CURL is:
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX
The result that I am getting:
Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)
Is there anything that I need to configure.The geocoding API is also switched on.
I had the same issue and I found this.
On the url, it requires the server key in the end and not the api key for the app.
So Basically, you just add the server key in the end of the URL like this:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY
Now, to obtain the server key, just follow these steps:
1) Go to Developer Console https://code.google.com/apis/console/
2) In the Credentials, under Public API Access, Create New key
3) Select the server key from the option.
4) Enter your IP Address on the field and if you have more ip addresses, you can just add on every single line.NOTE: Enter the IP Address only when you want to use it for your testing purpose. Else leave the IP Address section blank.
5) Once you are done, click create and your new Server Key will be generated and you can then add that server key to your URL.
Last thing is that, instead of putting the sensor=true in the middle of the URL, you can add it in the end like this:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true
This will definitely solve the issue and just remember to use the server key for Places API.
EDIT
I believe the web URL has changed in the past years. You can access developers console from here now - https://console.developers.google.com/apis/dashboard
Navigate to developers console - https://console.developers.google.com/ or use the link from details to navigate directly to API dashboard.
Under developer console, find Label from the left navigation panel
Select project
Choose Credentials from the left Navigation panel
You could create credentials type from the Top nav bar as required.
Hope this answer will help you and other viewers. Good Luck .. :)
Choose key
API Restriction tab
Choose API key
Save
Choose Application Restriction -> None
Save
In addition to the API key that is assigned to you, Google also verifies the source of the incoming request by looking at either the REFERRER or the IP address. To run an example in curl, create a new Server Key in Google APIs console. While creating it, you must provide the IP address of the server. In this case, it will be your local IP address. Once you have created a Server Key and whitelisted your IP address, you should be able to use the new API key in curl.
My guess is you probably created your API key as a Browser Key which does not require you to whitelist your IP address, but instead uses the REFERRER HTTP header tag for validation. curl doesn't send this tag by default, so Google was failing to validate your request.
The Google Places API does not currently support Android or iOS keys generated from the Google APIs Console. Only Server and Browser keys are currently supported.
You're trying to use an API KEY which you restricted in a way that won't allow this action.
According to Google:
Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.
So the right thing to do is to create another API KEY, and choose the correct restrictions for this matter. In your case, choose "IP addresses" (under "Application restrictions"), and use "ADD AN ITEM" to add your server ip.
Notice that leaving a blank list won't work, and will result in google changing your restrictions to "None".
Also, don't forget to add the relevant APIs under "API restrictions" (in your case "Geocoding API").
One last thing - Google is blocking the use of this API until you link your app to Google Cloud Billing Account. So if you didn't do it yet, once you successfully get a response, it will say you have to do it first (it has a free starting package).
Google Place API requires the referer HTTP header to be included when making the API call.
Include HTTP header "Referer:yourdomain.com" and this should fix the response issues.
You create an key with out referer
dont enter the referer address
For the latest version of the API the exact opposite seems to be true for me.
When calling the url https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key> I was getting the following error
You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please refer to http://g.co/dev/maps-no-account
Once I switched the order to https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address> it worked fine.
Note that the error message received above was the message I got when going directly to the URL in the browser. When I called the API from a software program I received an HTML response with basically the following message:
We're sorry... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.
Also, the corresponding API should be enabled for the given project
https://console.developers.google.com/apis/library?project=projectnamehere
For iOS or Android apps, the key needs an extra privilege granted.
Go to the Google Console -> APIs and Services -> Library. Tap the Places library for your platform and then tap Enable.
See https://developers.google.com/maps/gmp-get-started#enable-api-sdk
The reason this error is occurring because of the restrictions you have added when you create add the sha1 fingerprint on google cloud console , remove the fingerprints from android or ios then save .(the ip of that mobile phone will no longer be restricted)
Authentication, quotas, pricing, and policies
Authentication
To use the Directions API, you must first enable the API and obtain the proper authentication credentials. For more information, see Get Started with Google Maps Platform.
Quotas and pricing
Review the usage and billing page for details on the quotas and pricing set for the Directions API.
Policies
Use of the Directions API must be in accordance with the API policies.
more know : visit:--- https://developers.google.com/maps/documentation/directions/start?hl=en_US
url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY
add only in AppDelegate like
GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")
and remove the key in this url.
now url is
https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving
Disable both direction api and geocoding api and re-enable.
it works for only 5-10 seconds and than automatically disabled itself.
it means you have only 5-10 sec to test you assignment.

How to tackle 'Invalid user credentials given' in Google Sites API?

We use google sites at my company, and I am trying to use google sites API to modify certain pages. The credentials that I use for signing in are: username#companyName.com and a unique password.One more thing to note, is that the url for our sites pages are in the following format: https://sites.google.com/a/companyName/NameOfYourPage
I just started using the Google Sites API, and was looking at one of the examples that they have given in their /samples/sites directory. (Got this after downloading the most recent zip file https://code.google.com/p/gdata-python-client/downloads/list). Right now I was trying to run sites_examples.py.
So when I do run sites_examples.py and enter the site information as given above, I am asked to choose the authorization mechanism. I chose ClientLogin. When I enter the same user name and password (as I mentioned above) to access the sites page, it throws me: Invalid user credentials given.
Why is this happening?
You can get this error if Google detects suspicious activity on your account. To remedy
log in to your Google account with the same credentials
look for the warning from Google that notifies you of suspicious activity
click on the link on the warning on Google's site
follow Google's instructions to enable your client code

Resources