Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to get the real ID of a shortcut? #74

Closed
hagemouse opened this issue Jan 2, 2021 · 11 comments
Closed

How to get the real ID of a shortcut? #74

hagemouse opened this issue Jan 2, 2021 · 11 comments
Labels
question Further information is requested

Comments

@hagemouse
Copy link

Hi,

When someone shares something, you can make a shortcut into "My Drive", and you can access it in chrome or firefox. But the ID of the shortcut is not the real ID of the shared thing.
So how could I get the real ID from the shortcut?
I didn't find anything related with it in GoogleDriveFile.

Thank you.

@hagemouse
Copy link
Author

https://developers.google.com/drive/api/v3/shortcuts

targetID and targetMimeType not applied in pydrive2?

@shcheklein
Copy link
Member

Could you try to do FetchMetadata and pass shortcutDetails to the fields?

example is here- https://iterative.github.io/PyDrive2/docs/build/html/filemanagement.html#handling-special-metadata

@shcheklein shcheklein added the question Further information is requested label Jan 2, 2021
@hagemouse
Copy link
Author

thank you very much.

file.FetchMetadata(fields='shortcutDetails') get nothing

file.FetchMetadata(fetch_all=True),get 403 error:
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."
but I have already signuped.

@shcheklein
Copy link
Member

@hagemouse hmm, what fileId do you pass to the CreateFile? It should be Id of the shortcut. Could you try to pass some other attributes - mimeType, name?

dailyLimitExceededUnreg - is is a public file? It's a regular thing for files that are publicly shared by someone to hit those limits.

@hagemouse
Copy link
Author

Thank you for your reply.
The folder is public shared. I passed the id of the shortcut(a folder) , CreateFile({"id": fileId}). I tried more field , and got the same result.
I think the error came from FetchMetadata. If I passed a field that doesn't exist, such as FetchMetadata(field="abc"), it will raise 403 error. FetchMetadata(fetch_all=True) got 403 error too.

If I just use FetchMetadata() with no para, there is no field called targetId.

@hagemouse
Copy link
Author

Another problem is, it seems that there is not a function in pydrive2 than can be used to get the list of team drives. And I can not get the correct name(title) of team drives by FetchMetadata(driveId), all of them are same:"Team Drive".

@shcheklein
Copy link
Member

@hagemouse

Could you try to open https://developers.google.com/drive/api/v2/reference/files/get, click "Try it" to the right and run the query, with the same ID (there is Show standard parameters expand_more link for the fields parameter`)

Same for the drives list - we need to see it's working in the explorer to understand what is missing.

@hagemouse
Copy link
Author

hagemouse commented Jan 2, 2021

from v2 to v3:

  1. title -> name
  2. "parents" type changed to list
  3. added new field "shortcutDetails" for shortcut ,which referring to the real id of the file.
  4. extended "capabilities"
  5. reduce many fields
  6. get all fields of a files with 'fields = "*"' in v3

can not get team drive list or names from files.get. have to use drives.get. but I did not find it in pydrive2.

@shcheklein
Copy link
Member

For shortcutDetails, I can't reproduce this. Even V2 explorer gives me details. If you item is located on a team drive, could you try to set supportsAllDrives true?

Screen Shot 2021-01-02 at 2 30 28 PM

Screen Shot 2021-01-02 at 2 30 42 PM

can not get team drive list or names from files.get. have to use drives.get. but I did not find it in pydrive2.

what are you trying to do here? why do you need a list of all drives?

@hagemouse
Copy link
Author

When have a fileId ,I want to make a full path like this: /gdrive/Shareddrives/a/b/c/1.zip. But now I think I can write the ids and name of my team drives as a tuple.

Thank you very much.

@shcheklein
Copy link
Member

so, does it mean the problem is solved? I'm closing the issue then, feel free to reopen if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants