Exception while sending response back to Google Business API - java

We have deployed a java web application to server as a Webhook endpoint to receive messages from Google business messages platform. Request is reaching fine to the endpoint but while sending back the response, we are facing an exception from the google business api. PFB response we are getting,
com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Your partner account doesn't have access to this conversation.",
"reason" : "forbidden"
} ],
"message" : "Your partner account doesn't have access to this conversation.",
"status" : "PERMISSION_DENIED"
}
We have enabled the google business API and google communications API for our project.
ANd project is also registered as a partner with google business messages.
I need help to resolve this issue. Please let me know if there are any further permissions we need to give to make this work.
We tried using the service account json to send back the response to api, but still giving the same error.

Related

Firebase authorisation error for otp auth

getting this error message in logcat after entering the mobile number and clicking on verify.
2020-12-12 18:23:55.403 15226-15226/com.example.proj1 E/zzf: Problem retrieving SafetyNet Token: 7:
2020-12-12 17:28:13.461 29510-31007/com.example.proj1 E/FirebaseAuth: [GetAuthDomainTask] Error getting project config. Failed with {
"error": {
"code": 400,
"message": "INVALID_CERT_HASH : Client does not match API key",
"errors": [
{
"message": "INVALID_CERT_HASH : Client does not match API key",
"domain": "global",
"reason": "invalid"
}
]
}
}
400
2020-12-12 18:23:56.998 15226-15226/com.example.proj1 E/zzf: Failed to get reCAPTCHA token - calling backend without app verification
2020-12-12 18:23:57.660 15226-15263/com.example.proj1 E/FirebaseAuth: [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17093 null
help.....
solved the problem by redoing the whole thing.
the problem was i was also integrating gmail login in my android app. so i think the credentials for both services were clashing. i removed both things first. then created firebase project did whole thing for otp authorisation, enabled phone auth and voila the otp service was working.
then for gmail login i used the same fire base project and enabled google auth for that and this service also started working.
the problem was i think i used firebase project for otp and google cloud project for gmail. i think these clashed and i got this error.
if you need any more help let me know.

Google Speech-to-Text API Unauthorized error :

I am creating a new Speechclient from the Google Cloud Speech library with the system environment variable GOOGLE_APPLICATION_CREDENTIALS set to the path of my Cloud Platform service account JSON file. I am getting the following error:
INFO:
Failed to detect whether we are running on Google Compute Engine.
Exception in thread "main" com.google.cloud.storage.StorageException: Anonymous caller does not have storage.buckets.get access to the Google Cloud Storage bucket.
at com.google.cloud.storage.spi.v1.HttpStorageRpc.translate(HttpStorageRpc.java:229)
at com.google.cloud.storage.spi.v1.HttpStorageRpc.get(HttpStorageRpc.java:406)
at com.google.cloud.storage.StorageImpl$4.call(StorageImpl.java:217)
at com.google.cloud.storage.StorageImpl$4.call(StorageImpl.java:214)
at com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:105)
at com.google.cloud.RetryHelper.run(RetryHelper.java:76)
at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)
at com.google.cloud.storage.StorageImpl.get(StorageImpl.java:213)
at Main.listOfObjects(Main.java:47)
at Main.getListOfObjects(Main.java:63)
at Main.runListOfAudioFiles(Main.java:68)
at Main.main(Main.java:179)
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
{
"code" : 401,
"errors" : [ {
"domain" : "global",
"location" : "Authorization",
"locationType" : "header",
"message" : "Anonymous caller does not have storage.buckets.get access to the Google Cloud Storage bucket.",
"reason" : "required"
} ],
"message" : "Anonymous caller does not have storage.buckets.get access to the Google Cloud Storage bucket."
][1]
I have logged in to my GCP project in the command line with gcloud init. That did not have any effect, I am still getting the same above error.
I attempted to authorize the project with explicit credentials as suggested here but I got the following error:
INFO:
Failed to detect whether we are running on Google Compute Engine.
Failed to create the client due to: java.io.IOException: The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
I am running on IntelliJ Idea with the Cloud Code plugin.
I am not sure how to proceed from here, any help would be appreciated, thanks!

Unable to upload videos to youtube using java API (oAuth2). Receiving 403 Access forbidden. The request may not be properly authorized

I have an application which uploads videos to YouTube. Since 24 feb my application have serious issues with upload functionality. I'm using official google java client for youtube (and oauth as well).
The problem that I'm receiving 403 Forbidden using video upload API.
The refresh token, auth bearer header are ok.
When I run my application first time it successfully uploads 1-2 videos and then a bit later it receives 403 from google on new requests which reuses the same connection authorization.
I even reproduced the problem in oauth playground.
How to reproduce?
Enter application oauth credentials in google oauth playground
Authorize youtube.upload API
Exchange auth token in order to get refresh token
From api test section execute POST to https://www.googleapis.com/upload/youtube/v3/videos?part=id&prettyPrint=true&uploadType=resumable - It should create empty video stub before upload
First 1-3 times the POST creates video stubs with correct youtube video id, but later it responds with:
{
"error": {
"code": 403,
"message": "Access forbidden. The request may not be properly authorized.",
"errors": [
{
"domain": "youtube.common",
"message": "Access forbidden. The request may not be properly authorized.",
"reason": "forbidden"
}
]
}
}
Here's the full response:

Getting Google plus profile image

I have been developing a Java language application.
Now i am trying to show the logged in user photograph as part of the user data, but i dont seem to get it right.
Through UserService i am getting the user id, and with the user id and my application api key, i am trying to build the image url to load it into my application.
But it isnt working.
The url i am building is : https://www.googleapis.com/plus/v1/people/{USER_ID}?fields=image&key={API_KEY}
But i keep getting the same error :
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
}
],
"code": 403,
"message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
}
}
I have enabled as well the following API in Google Developers Console:
Drive API
Drive SDK
Google Cloud SQL
Google Compute Engine
Google Picker API
Google+ API
Can anyone lend me a hand on this?. Sorry if i waste your time with something obvious.
Check that you're using the right value for the API key. They're under Public API access in the Credentials section of the developer console and should look like something like this: AIzaSyC2WWuM97gdij5k5uRduLFeL3LuURBvFpo - make sure it's of that form, and associated with the project you have enabled the API for.

Unable to access user's profile from Google Plus

I am using Scribe-Java to connect to Google plus using OAuth2. I am able to authenticate my application and obtain user's permission, but when I try to access anything other than userinfo, I am getting this Exception.
403
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured","message": "Access Not Configured"
}
],
"code": 403,
"message": "Access Not Configured"
}
}
I have set the scope of my application as https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.profile and to access user's profile I am using this url:
https://www.googleapis.com/plus/v1/people/{userid}/activities/public
Can you tell me what I am doing wrong? Is there some other scope that I need to use here to access the Profile?
1) Visit the Google APIs console:
http://code.google.com/apis/console
2) Go to the 'Services' page.
3) Enable the Google+ API by switching it to On
I got the same error in PHP using HybridAuth:
I had to activate the following in the Google Developers Console in APIs & Auth -> APIs
Contacts API
Google+ API
See also the discussion at http://hybridauth.sourceforge.net/userguide/IDProvider_info_Google.html

Categories