איך אפשר לגשת לקבצים שבגוגל דרייב מסקריפט פייתון?
-
אני מנסה לכתוב סקריפט בפייתון שאני יוכל לסייר דרכו ולגשת דרכו אל הקבצים שבדרייבים השונים שלי
הבעיות הם ש:
א. אני לא מוצא דרך פשוטה לחבר את הסקריפט לחשבון גוגל אלא דרך קובץ JSON עם האישורים הרלוונטיים
ב. זה דורש ממני להפעיל API לכל חשבון בנפרד
ג. אחרי שאני עושה את כל אלו זה עדיין לא עובדזה הקוד:
from google.oauth2 import service_account credentials = service_account.Credentials.from_service_account_file('C:\\Users\\user\\Music\\Lab\\On working\\credentials.json', scopes=['https://www.googleapis.com/auth/drive'])
וזאת השגיאה
Service account info was not in the expected format, missing fields client_email, token_uri.
ב JSON יש את השדה token_uri אבל אין את client_email - זה לא היה בקובץ שהורדתי
מה השתבש???
יש דרך נורמלית יותר לגשת לקבצים? (זכור לי ש air explorer עושה את אותו הדבר בלי כל הסיפור הזה) -
אני מכיר שתי גישות באוטומציה לגישה לקבצי משתמש גוגל,
גישה אחת היא דינמיות, כלומר במהלך ריצת התוכנה המשתמש מתבקש לאפשר גישה לישות הנדרשת, וממילא אפשר מצד אחד לגשת לכל המשתמשים בעולם שייתנו את אישורם ומצד שני חייבים אינטראקציה עם המשתמש.
גישה שניה זה גישה סטטית יחסית, התוכנה מזדהה כסוג משתמש שנקרא Service Account שיש לו כתובת מייל ארוכה של גוגל (משהו כזה xyz@xyz.gserviceaccount.com), וסיסמה של מפתח פרטי. בגישה זו התוכנה מנסה לגשת עם הרשאות של המייל הארוך הזה בלי שום בקשה למשתמש. אם רוצים להעניק גישה יש ללכת לקובץ ולהעניק גישה למייל ההוא בדיוק כמו כל הענקת גישה לחשבון גוגל כל שהוא.בגישה הראשונה האישורים שאתה צריך בשביל שהתוכנה תוכל לבקש ממשתמש אישר, נקרא OAuth, ובגישה השניה האישורים הם החשבון שנקרא Service Account.
כעת נעבור לקוד שלך,
השאלה היא אם הקובץ credentials.json הוא של Service Account או של OAuth. אם זה השני, השגיאה נראית לי בגלל זה כי אתה משתמש עם קוד שטוען אישורי Service Account.