Unable to access user's profile from Google Plus - java

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

Related

My app can not create file in "appDataFolder" of google drive

How can I create a file in google drive "appDataFolder"?
I created google developer console settings which is necessary for creating file and accessing "appDataFolder".
google developer console
Android Studio output error messages as below.
W/System.err: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code": 403,
"errors": [
{
"domain": "global",
"message": "The granted scopes do not allow use of the Application Data folder.",
"reason": "insufficientScopes"
}
],
"message": "The granted scopes do not allow use of the Application Data folder."
}
W/System.err: at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:432)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.example.test1.MainActivity$3.run(MainActivity.java:131)
at java.lang.Thread.run(Thread.java:923)
Source code is
File body = new File();
body.setName(FILE_TITLE);//fileContent.getName());
body.setMimeType("text/plain");
body.setParents(Collections.singletonList("appDataFolder"));
File file = service.files().create(body, content)
.setFields("id")
.execute();
If the following line is commented out in the source code, my app can create a file in google drive
top folder not "appDataFolder".
body.setParents(Collections.singletonList("appDataFolder"));
Android Studio 4.1.2
enter image description here
Best regards.
Thanks in advance.
While from the looks of your developer console image you apear to have include a large number of scopes. The issue here is not with your settings in google developer console but rather with the scopes you have authorized your user with.
When you run your application the user is asked to consent to your accessing some of their data, this is the scope of authorization for your application. It defines what the user has granted your application access to do.
If your code only requests read only access then and you try to write to it then your going to see an insufficientScopes error message.
You need to check what scope is required of the method you are using and then make sure when you authorize your user that you are requesting that scope.
My guess is you have something like this
private static final List<String> SCOPES = Collections.singletonList(DriveScopes.DRIVE_METADATA_READONLY);
YOu need to include this scope https://www.googleapis.com/auth/drive.appdata which is probably something like DriveScopes.DRIVE_APPDATA
Remember once the scopes have been changed in your application you will need to reauthorize the user. If your storing the consent then it needs to be removed in order to request authorization again.

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.

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.

TaskQueueSample.java : Code 403

I am trying to make the sample works so here is the code :
Sample Code
The documentation for the installation is there:
Installation documentation
I had a little problem on the step:
Click on "API Access", and then on "Create an OAuth 2.0 Client
ID...". Enter a product name and click "Next".
The UI of the console has been upgraded probably so I use those data for the authentication in the console:
Then I run the program and it brings me to the webpage to allow the app and then i got the following error message in the console:
403 Forbidden
{
"code" : 403,
"errors" : [ {
"message" : "you are not allowed to make this api call"
} ],
"message" : "you are not allowed to make this api call"
}
My queue.xml ACL is set with the email i used to authenticate
Why don't you use the native TaskQueue-API from the GAE Java SDK? You don't need to set up credentials, connection, ... .
You can see an example on the GAE Docs - here a Pull Queue, but you can also use a Push Queue if you want (an example is also in the GAE Docs).
Which one of the examples do you want to launch on the google app engine? On your posted link are many examples available :) . Tell me if you really want to use the Google-API to access the TaskQueues.

Categories