nodejs Не удается загрузить googlephotos с сообщением «Сеанс аутентификации не определен» - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть код, основанный на примерах, приведенных в документации googlephotos . Я просто взял код, предоставленный как есть, и изменил его, чтобы заполнить свой идентификатор клиента, секреты и т. Д. c. сгенерируйте URL, который я затем вставлю в свой браузер, и после нажатия для авторизации моего приложения я скопирую предоставленный мне код и использую его для создания нового объекта Photos.

Я попытался настроить свои области следующим образом:

const scopes = [
    Photos.Scopes.READ_ONLY,
    Photos.Scopes.SHARING,
    Photos.Scopes.APPEND_ONLY
];

Но я также пытался:

const scopes = [
    Photos.Scopes.APPEND_ONLY
];

и

const scopes = [
    Photos.Scopes.READ_AND_APPEND
];

Я могу получить токены аутентификации, которые я могу использовать для создания нового Фотографий объект. Я пытаюсь загрузить что-то вроде этого:

const response = await photos.mediaItems.upload("", "test.mp4", "/home/michael/test/test.mp4", "Test Upload");

Я получаю эту ошибку вместе с трассировкой стека, которая кажется бесполезной:

(узел: 13122) UnhandledPromiseRejectionWarning: StatusCodeError: 401 - "{\ n \" code \ ": 16, \ n \" message \ ": \" Сеанс аутентификации не определен. \ "\ n}"

Я предоставил разрешение на добавление, которое это все, что должно быть для этого, чтобы иметь надлежащую авторизацию, но все равно не получится! Что я тут не так делаю?

1 Ответ

0 голосов
/ 24 апреля 2020

Документация не является суперспецифической c о том, какой именно "auth_token" вы должны передать, просто говоря:

const photos = new Photos(your_google_auth_token);

без определения того, что your_google_auth_token есть или откуда оно взято собственная документация Google для API загрузки просто говорит oauth2-token, что не помогает понять, каким должно быть это значение.

В том же коде для получения токенов это просто говорит:

const {tokens} = await oauth2Client.getToken(code)

// The token from above can be used to initialize the photos library.

Эта ошибка возникает, когда вы наивно подключаете токены, которые получаете к конструктору, следующим образом:

const photos = new Photos(auth_token)

Вместо этого вам нужно подключить access_token поле токенов вот так:

const photos = new Photos(auth_token.access_token)
...