Невозможно получить идентификатор канала пользователя из электронной почты пользователя. Я попытался использовать параметр forUsername
, но это работает только для некоторых пользователей (унаследованная проблема). Единственное, что я нашел, это использовать Google Signin для реализации iOS, которые позволяют вам подписаться на свою учетную запись google. Для того, чтобы иметь эту возможность, чтобы получить данные YouTube это требует дополнительной настройки области действий следующим образом:
let scope: NSString = "https://www.googleapis.com/auth/youtube.readonly"
let currentScopes: NSArray = GIDSignIn.sharedInstance().scopes
GIDSignIn.sharedInstance().scopes = currentScopes.arrayByAddingObject(scope)
Теперь вы можете запустить следующий API данных YouTube с токеном доступа:
https://www.googleapis.com/youtube/v3/channels?part=id&mine=true&access_token={oauth_token}
Маркер доступа, вы получите от user.authentication.accessToken
Так что мне нужно знать с сайта userIDID пользователя или имени пользователя (forusername)? –
@NoamMaoz Точно. Однако, если вы позволите пользователю пройти аутентификацию через OAuth, вы можете указать параметр «mine». Также обратите внимание, что параметр 'forUsername' принимает только устаревшие имена пользователей (/ user/username ones). – janykste
Вы пример того, как использовать аутентификацию пользователя через OAuth с параметром mine в Swift? https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true&key={YOUR_API_KEY} –