列出我的YouTube播放列表中的错误



我通过Google Signin IOS SDK获得了用户访问令牌。然后,我使用以下源代码在YouTube中获取我的播放列表:

func listMyPlaylists(completionHandler: @escaping (_ result: Any?, _ error: Error?) -> ())
{
    let url = URL(string: "https://www.googleapis.com/youtube/v3/playlists")!
    let parameters: Parameters = ["part": "id","mine": "true"]
    let headers: HTTPHeaders = ["Authorization": "Bearer " + accessToken, "Content-Type": "application/json"]
    Alamofire.request(url, method: .get, parameters: parameters, encoding: URLEncoding.default, headers: headers).responseJSON { json in
        if let error = json.result.error
        {
            completionHandler(nil, error)
        }
        else
        {
            completionHandler(json.result.value, nil)
        }
    }
}

但是,我有以下错误。我想念什么?

{
error =     {
    code = 403;
    errors =         (
                    {
            domain = global;
            message = "Insufficient Permission";
            reason = insufficientPermissions;
        }
    );
    message = "Insufficient Permission";
};

}

通常会在您不包括YouTube API中所述的授权范围时发生,

禁止(403) - 不足的OAuth 2.0代币提供 因为请求指定不足以访问的范围 请求的数据。

您可以使用的YouTube范围之一是

https://www.googleapis.com/auth/youtube.force-ssl

我同意@noogui的答案,在这里我想解释如何实现此目的 - 检查您设置的范围,如果是 kgtlrauthscopeyoutubereadonly 然后将其更改为 kgtlrauthscopeyoutubeubload

private let scopes = [kGTLRAuthScopeYouTubeUpload]

并将其设置为 viewDidload

GIDSignIn.sharedInstance().scopes = scopes

这是您可以检查

的范围列表

kgtlrauthscopeyoutube kgtlrauthscopeyoutubeforcessl kgtlrauthscopeyoutublepload kgtlrauthscopeyoutubereadly kgtlrauthscopeyoutubeyoutubepartner kgtlrauthscopeyoutubeyoutubepartnerchannelaudit

相关内容

  • 没有找到相关文章

最新更新