Get file information through api - google-drive-api

I'm not able to get information about a file.
Here it is my situation:
I'm logged in google drive
Through google picker I get the file ID
Then I type the url https://www.googleapis.com/drive/v1/files/[file ID]
But I get the following error:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit Exceeded. Please sign up",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit Exceeded. Please sign up"
}
}
How can I sort it out?

You can't retrieve the file metadata by typing the url in your browser.
Instead you need to send an authorized request with a valid OAuth 2.0 token.
For more information:
https://developers.google.com/drive/about_auth

Related

How can I get my Google Groups via API? I am NOT admin

I want to get all my groups but I am not an admin
I know how to fetch groups if I am admin. But if not - I don't understand. Also I can see its via website
My steps:
I do auth with Google and with scope
[
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/groups",
]
I fetch groups by GET. Url: "https://admin.googleapis.com/admin/directory/v1/groups?domain=konstructly.com"
I get the next problem:
{
"error": {
"code": 403,
"message": "Not Authorized to access this resource/api",
"errors": [
{
"message": "Not Authorized to access this resource/api",
"domain": "global",
"reason": "forbidden"
}
]
}
}
My question
How can I get my Google Groups via Google API?
I tried:
Auth with scope
[
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/groups",
]
GET "https://admin.googleapis.com/admin/directory/v1/groups?domain=konstructly.com"
Expectation:
List of my groups
Actual result:
{
"error": {
"code": 403,
"message": "Not Authorized to access this resource/api",
"errors": [
{
"message": "Not Authorized to access this resource/api",
"domain": "global",
"reason": "forbidden"
}
]
}
}
Instead of using the Google Workspace Admin SDK, use the Groups Service from Google Apps Script, more specifically GroupsApp.getGroups()

Google Reports API

I need to create simple Java application for Reports API (https://developers.google.com/admin-sdk/reports/v1/guides/manage-audit-drive)
But I can't understand is this Reports available only for business users or also for all users?
How can I develop applications for G suite without buy it?
For example, I'm sending this request via Postman - https://www.googleapis.com/admin/reports/v1/activity/users/all/applications/drive
Response is
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Access denied. You are not authorized to read activity records.",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Access denied. You are not authorized to read activity records."
}
}
Best regards,
Aleksandr.

Unable to share a file in Team Drive with anyone with link and for people outside organization

I would like to use Google Drive API to share a file with anyone that has the link to view the file.
However, i failed with error 403, even if I used admin account
"code": 403,
"message": "The user does not have sufficient permissions for this file."
I tried using the API Explorer but still failed.
Followings are my parameters, please help
fileID:"xxxxxxx"
Request Body
{
"role": "reader",
"type": "anyone"
}
And the response
Response
{
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientFilePermissions",
"message": "The user does not have sufficient permissions for this file."
}
],
"code": 403,
"message": "The user does not have sufficient permissions for this file."
}
}
Please check and help.
Thanks

Not able to download file from Google Drive with Postman

I want to use Google Drive from Postman, and when I tried to hit the API I am geting an error.
URL:
https://www.googleapis.com/drive/v3/files/1Iwvqcx073GhEU9eRD4vPihXoj2AV63LEyLZwu6i0jTQ?alt=media
I am getting:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "fileNotDownloadable",
"message": "Only files with binary content can be downloaded. Use Export with Google Docs files.",
"locationType": "parameter",
"location": "alt"
}enter code here
],
"code": 403,
"message": "Only files with binary content can be downloaded. Use Export with Google Docs files."
}
}
you need to add responseType: 'blob' if you are trying to get a pdf file
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data
Check this link for more info on how to handle file content download

Admin SDK Directory API, Google Apps Script

I'm trying to run the following code:
var oAuthConfig = UrlFetchApp.addOAuthService("name");
oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope=https://www.googleapis.com/auth/admin.directory.user");
oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oAuthConfig.setConsumerKey("******************");
oAuthConfig.setConsumerSecret("******************");
var options =
{
"oAuthServiceName" : "name",
"oAuthUseToken" : "always",
};
var result = UrlFetchApp.fetch("https://www.googleapis.com/admin/directory/v1/users?domain=******************&maxResults=2",options);
}
I'm sure I'm using the "secret key" and "consumer key" right.
The error is:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console" }
]
,
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup." }
}
Anyone know how to fix it?
You need to send the Auth Token as parameter in the UrlFetchApp.fetch .
As you didn't send it the message of unauthenticated was sent.